Skip to content

Conversation

@copelco
Copy link
Member

@copelco copelco commented Jan 27, 2026

Summary

  • Upgrade Python deps, including Pandas 3.0 and Django 5.2.10, along with many others using uv sync --upgrade
  • Replaced linting/formatting tools: Migrated from black, isort, and flake8 to ruff for faster linting and formatting
  • Updated pre-commit hooks: Configure ruff-check (with --fix) and ruff-format hooks to replace individual black, isort, and flake8 hooks
  • Added JupyterLab: Added jupyterlab>=4.5.3 as a dev dependency for notebook development

refs #369 #380

Local testing

  • Test suite runs ✅
  • Deploy runs ✅
  • Imported latest data with uv run manage.py import_nc --dest $PWD/ncdata --noprime successfully ✅
  • Loaded key pages appear to match without errors ✅ :
Screenshot 2026-01-27 at 4 15 15 PM (2) Screenshot 2026-01-27 at 4 15 48 PM Screenshot 2026-01-27 at 4 17 54 PM

@copelco
Copy link
Member Author

copelco commented Jan 27, 2026

Upgrade output:

> uv sync --upgrade         
Resolved 153 packages in 1.08s
Prepared 82 packages in 2.75s
Uninstalled 83 packages in 3.99s
Installed 82 packages in 1.36s
 - ansible==11.9.0
 + ansible==13.2.0
 - ansible-core==2.18.8
 + ansible-core==2.20.1
 - anyio==4.10.0
 + anyio==4.12.1
 - asgiref==3.9.1
 + asgiref==3.11.0
 - asttokens==3.0.0
 + asttokens==3.0.1
 - attrs==25.3.0
 + attrs==25.4.0
 - awscli==1.42.16
 + awscli==1.44.25
 - billiard==4.2.1
 + billiard==4.2.4
 - black==25.1.0
 + black==26.1.0
 - boto3==1.40.16
 + boto3==1.42.35
 - botocore==1.40.16
 + botocore==1.42.35
 - brotli==1.1.0
 + brotli==1.2.0
 - cachetools==5.5.2
 - celery==5.5.3
 + celery==5.6.2
 - census==0.8.24
 + census==0.8.25
 - certifi==2025.8.3
 + certifi==2026.1.4
 - cffi==1.17.1
 + cffi==2.0.0
 - cfgv==3.4.0
 + cfgv==3.5.0
 - charset-normalizer==3.4.3
 + charset-normalizer==3.4.4
 - click==8.2.1
 + click==8.3.1
 - coverage==7.10.5
 + coverage==7.13.2
 - cryptography==45.0.6
 + cryptography==46.0.3
 - dj-database-url==3.0.1
 + dj-database-url==3.1.0
 - django==5.2.5
 + django==5.2.10
 - django-ckeditor-5==0.2.18
 + django-ckeditor-5==0.2.19
 - django-click==2.4.1
 + django-click==2.5.0
 - django-crispy-forms==2.4
 + django-crispy-forms==2.5
 - django-debug-toolbar==6.0.0
 + django-debug-toolbar==6.2.0
 - django-filter==25.1
 + django-filter==25.2
 - django-pgviews-redux==0.11.0
 + django-pgviews-redux==1.1.0
 - executing==2.2.0
 + executing==2.2.1
 - faker==37.5.3
 + faker==40.1.2
 - filelock==3.19.1
 + filelock==3.20.3
 - google-auth==2.40.3
 + google-auth==2.48.0
 - identify==2.6.13
 + identify==2.6.16
 - idna==3.10
 + idna==3.11
 - iniconfig==2.1.0
 + iniconfig==2.3.0
 - invoke==2.2.0
 + invoke==2.2.1
 - ipython==9.4.0
 + ipython==9.9.0
 - isort==6.0.1
 + isort==7.0.0
 - jellyfish==1.2.0
 + jellyfish==1.2.1
 - jmespath==1.0.1
 + jmespath==1.1.0
 - jsonschema==4.25.1
 + jsonschema==4.26.0
 - jsonschema-specifications==2025.4.1
 + jsonschema-specifications==2025.9.1
 - kombu==5.5.4
 + kombu==5.6.2
 - kubernetes-validate==1.32.0
 + kubernetes-validate==1.33.1
 - markupsafe==3.0.2
 + markupsafe==3.0.3
 - matplotlib-inline==0.1.7
 + matplotlib-inline==0.2.1
 - nodeenv==1.9.1
 + nodeenv==1.10.0
 - numpy==2.3.2
 + numpy==2.4.1
 - packaging==25.0
 + packaging==26.0
 - pandas==2.3.2
 + pandas==3.0.0
 - pathspec==0.12.1
 + pathspec==1.0.4
 - pillow==11.3.0
 + pillow==12.1.0
 - platformdirs==4.3.8
 + platformdirs==4.5.1
 - pre-commit==4.3.0
 + pre-commit==4.5.1
 - prompt-toolkit==3.0.51
 + prompt-toolkit==3.0.52
 - psycopg==3.2.9
 + psycopg==3.3.2
 - pyasn1==0.6.1
 + pyasn1==0.6.2
 - pycparser==2.22
 + pycparser==3.0
 - pytest==8.4.1
 + pytest==9.0.2
 - pytest-cov==6.2.1
 + pytest-cov==7.0.0
 + pytokens==0.4.0
 - pytz==2025.2
 - pyyaml==6.0.2
 + pyyaml==6.0.3
 - redis==6.4.0
 + redis==7.1.0
 - referencing==0.36.2
 + referencing==0.37.0
 - resolvelib==1.0.1
 + resolvelib==1.2.1
 - rpds-py==0.27.0
 + rpds-py==0.30.0
 - s3transfer==0.13.1
 + s3transfer==0.16.0
 - sniffio==1.3.1
 - sphinx-autobuild==2024.10.3
 + sphinx-autobuild==2025.8.25
 - sqlparse==0.5.3
 + sqlparse==0.5.5
 - starlette==0.47.3
 + starlette==0.52.1
 - troposphere==4.9.3
 + troposphere==4.9.6
 - typing-extensions==4.14.1
 + typing-extensions==4.15.0
 - tzdata==2025.2
 + tzdata==2025.3
 + tzlocal==5.3.1
 - uvicorn==0.35.0
 + uvicorn==0.40.0
 - virtualenv==20.34.0
 + virtualenv==20.36.1
 - watchfiles==1.1.0
 + watchfiles==1.1.1
 - wcwidth==0.2.13
 + wcwidth==0.5.0
 - websocket-client==1.8.0
 + websocket-client==1.9.0
 - websockets==15.0.1
 + websockets==16.0
 - whitenoise==6.9.0
 + whitenoise==6.11.0

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.

Upgrade core dependencies to latest stable versions (Pandas 3.0, Django 5.2.10) Switch to ruff for linting and formatting

1 participant