-
Notifications
You must be signed in to change notification settings - Fork 0
First stable version #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces the initial stable implementation of NPKit, a Python library for frequentist inference and Neyman construction. The changes transform a template Python library into a complete statistical toolkit focused on confidence interval construction using profile likelihood ratios and Neyman belts.
- Replaces the template library structure with a comprehensive statistical inference toolkit
- Implements core functionality for observables, Gaussian models, likelihood computation, and Neyman belt construction
- Updates project metadata, documentation, and examples to reflect the new library purpose
Reviewed Changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/npkit/__init__.py |
Main package initialization with core exports for the NPKit library |
src/npkit/observables.py |
Observable and ObservableSet classes for defining model predictions |
src/npkit/measurements.py |
Combination class for handling measured data with covariance |
src/npkit/likelihood.py |
Gaussian model and likelihood implementations for statistical inference |
src/npkit/stats.py |
Statistical utilities including MLE fitting and profile likelihood ratios |
src/npkit/neyman.py |
Neyman belt construction and confidence interval inversion |
src/npkit/plot.py |
Plotting utilities for visualizing Neyman belts |
src/npkit/utils.py |
Utility functions for random number generation |
tests/test_wilks_linear.py |
Test for linear model Wilks theorem validation |
tests/test_chernoff_boundary.py |
Test for Chernoff boundary behavior at parameter boundaries |
examples/minimal_example.py |
Basic usage example demonstrating single observable case |
examples/multiple_observable_example.py |
Example showing multiple observable inference |
pyproject.toml |
Updated project metadata, name, and dependencies |
README.md |
Simplified documentation reflecting new project purpose |
docs/source/conf.py |
Updated Sphinx configuration for NPKit documentation |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Residual name change Co-authored-by: Copilot <[email protected]>
This pull request introduces the initial implementation of the NPKit library, a toolkit for frequentist inference and Neyman construction, along with examples and documentation updates. The main changes include the introduction of core modules for observables, likelihoods, Neyman belt construction, and plotting, as well as project renaming and dependency updates. Below are the most important changes:
Core Library Implementation:
src/npkit/, including modules for observables (observables.py), measurements (measurements.py), likelihoods (likelihood.py), Neyman belt construction and inversion (neyman.py), statistical utilities (stats.py), and plotting (plot.py). The main entry point and exports are defined in__init__.py. [1] [2] [3] [4] [5] [6]Examples:
Project Renaming and Metadata:
template-python-libtoNPKitacross all files, includingpyproject.toml, documentation, and URLs. Updated the project description and dependencies (addedscipy). [1] [2] [3] [4] [5]Documentation:
README.md, Sphinx config, and index) to reflect the new project name and purpose, and removed template-related instructions. [1] [2] [3]Tooling and Linting:
.flake8configuration file, indicating a shift to other linting tools (e.g., Ruff).