Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: kandersolar/pvlib-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: pvlib/pvlib-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 12 commits
  • 29 files changed
  • 13 contributors

Commits on Jul 4, 2026

  1. Fix broken link in GitHub Contributing tab (pvlib#2806)

    * fix broken contributing link
    
    * add tzdata to fix readthedocs build
    
    * Revert "add tzdata to fix readthedocs build"
    
    This reverts commit 9d7b89e.
    yonryzhu authored Jul 4, 2026
    Configuration menu
    Copy the full SHA
    cc5c470 View commit details
    Browse the repository at this point in the history
  2. Fix interval keyword argument in oedi_9068 gallery example (pvlib#2793)

    * Fix interval keyword argument in oedi_9068 gallery example
    
    Fixes pvlib#2791.
    
    The oedi_9068 gallery example calls get_nsrdb_psm4_conus() with
    interval=5, but the function's parameter is named time_step (the
    interval name comes from the NSRDB API query string, not the Python
    signature). This was missed when PR pvlib#2582 migrated the example from
    get_psm3 (which used interval) to get_nsrdb_psm4_conus (which uses
    time_step).
    
    Changes interval=5 to time_step=5 in the example call.
    
    No test changes needed — test_get_nsrdb_psm4_conus_5min already
    exercises time_step=5 against the function directly.
    
    * Apply review feedback: update PSM3→PSM4 references and add contributor
    
    - Update narrative comments from 'NSRDB PSM3' to 'NSRDB PSM4' to
      match the actual function called (get_nsrdb_psm4_conus)
    - Rename psm3/psm3_metadata variables to psm4/psm4_metadata for
      consistency with the PSM4 data source
    - Add Karl Hill to Contributors in v0.15.3 whatsnew
    
    Addresses Copilot suggestions (+1 from @cwhanse) on PR pvlib#2793.
    
    ---------
    
    Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>
    karlhillx and kandersolar authored Jul 4, 2026
    Configuration menu
    Copy the full SHA
    c4b9ad8 View commit details
    Browse the repository at this point in the history
  3. docs: fix parameter name mismatches in docstrings (pvlib#2804)

    * docs: fix parameter name mismatches in docstrings
    
    - pvsystem.py: `aoi_model` -> `iam_model` in PVSystem.get_iam and
      Array.get_iam (signature parameter is `iam_model`)
    - solarposition.py: `time` -> `times` in sun_rise_set_transit_ephem
    - irradiance.py: _liujordan documented a nonexistent `pressure`
      parameter; replace with the actual `airmass` parameter
    - bifacial/infinite_sheds.py: remove duplicated stale Parameters block
      in _poa_sky_diffuse_pv (listed `f_x` and `npoints` which are not
      parameters of this function)
    
    * Add contributor entry to v0.15.3 whatsnew
    
    * Update pvlib/irradiance.py
    
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    3 people authored Jul 4, 2026
    Configuration menu
    Copy the full SHA
    c34058d View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2026

  1. Add tzdata to fix ReadTheDocs build and vendor timezone data (pvlib#2809

    )
    
    Thanks @yonryzhu and @echedey-ls
    
    * add tzdata to fix readthedocs build
    
    * fix whatsnew and add clarifying tzdata comment
    yonryzhu authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    d2e6811 View commit details
    Browse the repository at this point in the history
  2. Remove unused clearsky._is_leap_year (closes pvlib#2768) (pvlib#2813)

    * Remove unused clearsky._is_leap_year (closes pvlib#2768)
    
    * Add contributor entry to whatsnew
    
    * Address review comments: fix pull number and contributor entry
    
    * Address review comments: fix pull number, contributor entry, restore blank lines
    dgowdaan-cmyk authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    df60945 View commit details
    Browse the repository at this point in the history
  3. Remove empty horizon component from irradiance.haydavies (pvlib#2788)

    * Remove empty horizon brightening component from haydavies
    
    * Change OrderedDict to Dict
    
    * Apply suggestion from @AdamRJensen
    
    * Add what's new entry
    
    * Update docs/sphinx/source/whatsnew/v0.16.0.rst
    
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    
    * Change Dict to dict
    
    * Update docs/sphinx/source/whatsnew/v0.16.0.rst
    
    Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
    
    * Apply suggestion from @cwhanse
    
    Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
    
    * Apply suggestion from @cwhanse
    
    Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
    
    ---------
    
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
    3 people authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    b4cc5f3 View commit details
    Browse the repository at this point in the history
  4. Change OrderedDict to dict in perez and perez_driesse (pvlib#2789)

    * Change OrderedDict to Dict in perez and perez_driesse
    
    * Add what's new entry
    
    * Update docs/sphinx/source/whatsnew/v0.16.0.rst
    
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    
    * Update docs/sphinx/source/whatsnew/v0.16.0.rst
    
    Co-authored-by: Echedey Luis <80125792+echedey-ls@users.noreply.github.com>
    
    * Change Dict to dict
    
    ---------
    
    Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
    Co-authored-by: Echedey Luis <80125792+echedey-ls@users.noreply.github.com>
    3 people authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    7613f6d View commit details
    Browse the repository at this point in the history
  5. Make meteonorm remote_data tests robust to data changes (pvlib#2810)

    The meteonorm iotools tests pinned specific values, the full column
    list, and exact column counts returned by the live API. Meteonorm
    regularly updates their weather dataset and adds parameters to the
    'all' set, neither of which is a breaking API change, but both cause
    these tests to fail spuriously (e.g. new
    'surface_tilt'/'surface_azimuth'
    columns broke the exact-list assertion).
    
    Assert only what pvlib controls, not what meteonorm's dataset controls:
    
    - realtime: check the known columns are a subset of the response and
      that the column count is at least as large, instead of exact equality.
    - training/tmy: drop the golden-value assert_frame_equal comparisons
      (and their fixtures); check columns, numeric dtype, and that at most
      20% of values are NaN (the guarantee meteonorm provides).
    
    Row counts and index checks are kept since they are determined by the
    requested time range, not the dataset.
    maschwanden authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    35c9e61 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2026

  1. [MAINT] Fix some gallery files not being executed (pvlib#2792)

    * Exclude gallery files that start with NX_
    
    * Rename oedi_9068.py example to NX_... to exclude from sphinx-gallery execution
    
    * Fix exclusion regex
    
    * ¿? Add warning into oedi example just in case
    
    * Comment editorial
    
    * Flake8 doing its thing. Once again.
    
    * Flake8 x2
    
    * Flake8 x3
    
    * Pin sphinx-gallery to 0.21
    
    * Add whatsnew entry
    
    * One last ammend to regex
    
    * This is the last ammend to the regex 100% real don't doubt it
    
    * Guess what. I'm updating the regex once again
    
    * Minor edit to whatsnew
    
    * regex escape separator - Win build was broken
    
    * Document regex on different OSes
    
    * Revive import distutils - IDK why it's there, thou
    
    * Remove distutil leftover
    
    * Change prefix NX_ -> noplot_
    
    * Forgot to save conf.py
    
    * flake8 needed love
    echedey-ls authored Jul 8, 2026
    Configuration menu
    Copy the full SHA
    9a0ad55 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2026

  1. Maint: Normalize line endings and add .gitattributes (pvlib#2805)

    * Maint: Normalize line endings and add .gitattributes
    
    * Update .gitattributes
    
    Co-authored-by: Echedey Luis <80125792+echedey-ls@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Echedey Luis <80125792+echedey-ls@users.noreply.github.com>
    Aditya-myst and echedey-ls authored Jul 14, 2026
    Configuration menu
    Copy the full SHA
    3e903d3 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2026

  1. Fix sun_rise_set_transit_spa day-of-interest to local calendar day (p…

    …vlib#2820)
    
    sun_rise_set_transit_spa normalized timestamps to midnight *after*
    converting to UTC (introduced in v0.11.1 by pvlib#2055). An evening-local
    timestamp is the next calendar day in UTC, so its day of interest was
    shifted forward and the function returned the following day's
    sunrise, sunset, and transit.
    
    Use the input's local calendar date as the day of interest, restoring
    the pre-v0.11.1 behavior. The SPA routine requires 00:00 UTC input, so
    the local date is re-labeled (not converted) to UTC. The timezone label
    is stripped before normalize() so truncation runs on a naive index:
    normalizing a tz-aware index would build local midnight, which does not
    exist (spring-forward) or is ambiguous (fall-back) on DST-transition
    days and would raise. This yields unixtimes byte-for-byte identical to
    the v0.11.0 implementation for all valid inputs. Adds an inline comment
    explaining the timezone handling (requested in the issue) and a
    regression test covering negative and positive offsets and a
    midnight-DST zone.
    
    Fixes pvlib#2238
    
    This change was drafted with AI assistance (Claude); all AI-generated
    material has been vetted for accuracy and is license-compliant.
    
    Co-authored-by: Claude <noreply@anthropic.com>
    Leonard013 and claude authored Jul 16, 2026
    Configuration menu
    Copy the full SHA
    cba326c View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2026

  1. Add NSRDB PSM4 polar and polar TMY iotools (pvlib#2807)

    * Add NSRDB PSM4 polar and polar TMY iotools
    
    * Fix linter
    
    * Set utc=True
    
    * Add whatsnew, update tests
    
    * Fix tests
    
    * Set map_variables=False in tests
    
    * Add get_nsrdb_psm4_polar_tmy
    
    * Fix linter
    
    * Add tests for erroneous inputs
    
    * Fix linter
    
    * Minor doc updates based on review
    
    * Change economic zone to plural
    AdamRJensen authored Jul 21, 2026
    Configuration menu
    Copy the full SHA
    176d356 View commit details
    Browse the repository at this point in the history
Loading