Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
222ab9b
Add debug arg that breaks density_2001 when calling neclumpN
telegraphic Feb 16, 2026
f854cf5
Add comprehensive test suite for __main__ code blocks
telegraphic Feb 21, 2026
1819699
Adding .gitignore
telegraphic Feb 21, 2026
4467e28
Adding coverage to pytest.ini
telegraphic Feb 21, 2026
84b3b76
Remove tracked Python bytecode files
telegraphic Feb 21, 2026
a9ed764
Updates for pytest, add pytest-mpl
telegraphic Feb 21, 2026
4be5164
Add regression test for ne_arms optimizations
telegraphic Feb 21, 2026
d560da7
Optimization 1: Use precomputed spiral arm spline when available
telegraphic Feb 21, 2026
11b24b7
Optimization 2: Use cumulative_trapezoid in dmdsm.py
telegraphic Feb 21, 2026
6e5e86d
Optimization 3: Preallocate numpy arrays
telegraphic Feb 21, 2026
21ac145
Optimization 4: avoid repeated dict lookups in ne_arms.py
telegraphic Feb 21, 2026
2cccfde
Replacing mpmath.sech with numerically stable numpy form
telegraphic Feb 21, 2026
69c0e47
Add Numba JIT compilation for 4.65× total speedup
telegraphic Feb 21, 2026
0799147
Documentation: Complete optimization session summary with 4.7× speedu…
telegraphic Feb 21, 2026
d57e18f
Adding dev/optimization scripts
telegraphic Feb 23, 2026
aef1455
Adding set_model() to config_nemod and changes to allow switching bet…
telegraphic Feb 23, 2026
e49715b
Added unit test for roundtrip using ne2001 and ne2025
telegraphic Feb 23, 2026
f71b8c6
Adding unit tests for numba njit code
telegraphic Feb 23, 2026
8ef884a
Adding unit tests for ne_gc and nevoidN
telegraphic Feb 23, 2026
387088c
Increased coverage for dmdsm tests
telegraphic Feb 23, 2026
ae68d6e
Merge branch 'temp/detached-work' into dcp_dev
telegraphic Feb 23, 2026
3354433
Include PEP-621 changes from @AlecThomson
telegraphic Feb 23, 2026
8c973d0
Adding numba as optional dependency
telegraphic Feb 24, 2026
b4ba600
Updated .gitignore
telegraphic Feb 24, 2026
42e5821
Created a GalaxyModel class/singleton for once-only instantiation
telegraphic Feb 25, 2026
2c0a77d
Major speed boost (14x for 50 kpc distance integral) by using cumulat…
telegraphic Feb 25, 2026
7cb378b
Pass scalar dx to cumulative_trapezoid instead of the uniform sf_vec …
telegraphic Feb 25, 2026
8232615
Vectorized small-scale and smooth component methods for significant s…
telegraphic Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[run]
source = src/mwprop
branch = True
omit =
*/site-packages/*
*/distutils/*
*/__pycache__/*

[report]
exclude_lines =
pragma: no cover
def __repr__
raise AssertionError
raise NotImplementedError
if __name__ == .__main__.:
if TYPE_CHECKING:
@abstractmethod
precision = 2
show_missing = True

[html]
directory = htmlcov
219 changes: 219 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[codz]
*$py.class

# macOS
.DS_Store

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
# Pipfile.lock

# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# uv.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
# poetry.lock
# poetry.toml

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
# pdm.lock
# pdm.toml
.pdm-python
.pdm-build/

# pixi
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
# pixi.lock
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
# in the .venv directory. It is recommended not to include this directory in version control.
.pixi

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# Redis
*.rdb
*.aof
*.pid

# RabbitMQ
mnesia/
rabbitmq/
rabbitmq-data/

# ActiveMQ
activemq-data/

# SageMath parsed files
*.sage.py

# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
# .idea/

# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/

# Visual Studio Code
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
# and can be added to the global gitignore or merged into this file. However, if you prefer,
# you could uncomment the following to ignore the entire vscode folder
# .vscode/

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/

# Streamlit
.streamlit/secrets.toml
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"python-envs.defaultEnvManager": "ms-python.python:conda",
"python-envs.defaultPackageManager": "ms-python.python:conda",
"python-envs.pythonProjects": []
}
Loading