## 3.1.0.10 (2023-06-13)

Type all openpyxl constants (#10312)

## 3.1.0.9 (2023-06-12)

Complete openpyxl's nested descriptors (#10298)

## 3.1.0.8 (2023-05-15)

openpyxl: Type MetaSerialisable dunders (#10170)

Typed `Serialisable.__attrs__`, `Serialisable.__nested__`, `Serialisable.__elements__`, and `Serialisable.__namespaced__` ClassVars.

## 3.1.0.7 (2023-05-10)

Add `partial_stub` metadata field (#10157)

## 3.1.0.6 (2023-05-10)

[openpyxl] Complete base descriptors (#10001)

## 3.1.0.5 (2023-05-01)

Remove unnecessary F821 noqas (#10123)

## 3.1.0.4 (2023-04-13)

[openpyxl] Annotate _WorkbookChild.title property (#10043)

## 3.1.0.3 (2023-03-26)

Ran stubdefaulter for `stubs/openpyxl` (#9946)

## 3.1.0.2 (2023-03-24)

openpyxl: add baseline stubs for new modules (#9921)

## 3.1.0.1 (2023-03-24)

[openpyxl] Annotate Worksheet and other items (#9892)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

## 3.1.0.0 (2023-03-15)

[openpyxl] Update to 3.1, add more annotations (#9875)

Closes: #9644

## 3.0.4.7 (2023-02-21)

Improve `openpyxl` annotations (#9764)

Co-authored-by: ArnabRollin <iamarnab.phukan@gmail.com>
Co-authored-by: ArnabRollin <106329283+ArnabRollin@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

## 3.0.4.6 (2023-02-21)

Stubtest settings: change `ignore_missing_stub` default to `false` (#9779)

If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.

## 3.0.4.5 (2023-01-18)

Improve pre-commit config (#9563)

- Add a few more hooks. These are all very fast, and I've found them useful in other projects:
  - Autofixes:
    - `trailing-whitespace`: fixes trailing whitespace
    - `requirements-txt-fixer`: alphabetises items in `requirements.txt` files
    - `end-of-file-fixer`: makes sure every file ends with a single newline character
    - `mixed-line-ending`: Makes sure Windows users don't accidentally introduce CRLF line endings into a file that uses LF line endings
  - None-autofixes:
    - `check-yaml`: loads YAML files to validate syntax
    - `check-toml`: loads TOML files to validate syntax
    - `check-merge-conflict`: detects merge-conflict strings in files and blocks them from accidentally being committed
    - `check-case-conflict`: checks for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT; blocks them from being committed.
  - Change the bot schedule to quarterly, to reduce noisy PRs
  - Change the `black` language target-version to Python 3.10, synching the setting here with the changes that were made to our `pyproject.toml` file in #7538

## 3.0.4.4 (2023-01-10)

openpyxl: Use "Incomplete" instead of "Any" (#9488)

## 3.0.4.3 (2022-12-03)

openpyxl stub: add open as an alias for load_workbook (#9324)

## 3.0.4.2 (2022-11-23)

Mark first argument of `__[get|set|del]attr__` as `str` (#9245)

## 3.0.4.1 (2022-11-09)

Annotate known magic-method return types (#9131)

## 3.0.4 (2022-06-06)

Always use `TypeAlias` when assigning to `Any` (#8021)

## 3.0.3 (2022-05-27)

`openpyxl`: annotate openpyxl.utils.cell stubs (#7969)

## 3.0.2 (2022-04-05)

Mark many attributes as read-only properties (#7591)

## 3.0.1 (2022-03-19)

Add mypy error codes to `type: ignore`s, remove unused ignores (#7504)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>

## 3.0.0 (2022-03-07)

Add openpyxl stubs (#6801)

