Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Refactoring2 mergo to base master - #3

Merged
remislp merged 79 commits into
DCPROGS:masterfrom
remislp:refactoring2
May 28, 2026
Merged

Refactoring2 mergo to base master#3
remislp merged 79 commits into
DCPROGS:masterfrom
remislp:refactoring2

Conversation

@remislp

@remislp remislp commented May 28, 2026

Copy link
Copy Markdown
Member

No description provided.

remislp and others added 30 commits January 6, 2020 14:31
@remislp
remislp merged commit abef4bc into DCPROGS:master May 28, 2026
remislp added a commit that referenced this pull request Aug 6, 2026
master and modernise are two independent modernisations of the same 2021 code,
not successive versions of one. modernise branched in 2021 and was developed in
June 2026; refactoring2, merged into master as #3, was developed separately and
landed in May. Neither contains the other. This makes modernise the basis, on
the evidence below.

  test suite                     74 passed        348 passed, 1 skipped
  popen.maxPopen(tres > 0)       AttributeError   works
  popen.EC50(tres > 0)           AttributeError   works
  stdout noise from one call     558 KB           none
  packaging                      fixed in #4      already correct
  declared dependencies          also Deprecated  numpy, scipy - and it
                                 and tabulate     imports no others
  documentation                  35-file Sphinx   11 Markdown files
                                 tree

The missed-events failures are the substantive point. refactoring2 moved
functions into classes but left module-level callers reaching for qml.GXY,
qml.eGs, qml.phiHJC and qml.dARSdS, none of which exist at module level any
more, so every resolution-corrected Popen calculation on master raises. The
class QMatrix also carries two live debug prints and computes five matrix
inversions eagerly on construction. A 74-test suite did not catch any of it.

Mechanics: this is a merge with modernise's tree taken wholesale, not a
force-push. Both histories are preserved and refactoring2 remains reachable
through the second parent.

Two things are carried over from master rather than taken from modernise:

  * .gitignore, which modernise had deleted
  * the eight tracked scalcs/__pycache__/*.pyc files are dropped again, as in #6

hjclib.py does not survive into this tree. It is the most finished part of
refactoring2 - HJCMatrix, AsymptoticPDF, ExactPDFCalculator, DerivativeCalculator
in 1488 lines - and it is the model to work from when the class API is redone on
top of this base, with 348 tests underneath it to catch the kind of half-migration
that broke master. It is kept on the branch classapi/refactoring2.

Verified on the merged tree: 348 passed, 1 skipped; maxPopen and EC50 at
tres = 30 us return 0.95345 and 2.3561e-06 with no stray output; and the
Colquhoun & Lape (2012) reproduction notebook runs against it unchanged, all
twelve published values within 0.129 %, ALL CHECKS PASSED.

The v0.5.1 and v0.5.1-cl2012 tags are unaffected: they are immutable and point
at cf0df11, and the corrigendum notebook is pinned to the tag.

Co-Authored-By: Claude Opus 5 <[email protected]>
@remislp
remislp deleted the refactoring2 branch August 6, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant