-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
Feat add IsHash #44
Feat add IsHash #44
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #44 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 12 12
Lines 692 709 +17
Branches 176 180 +4
=========================================
+ Hits 692 709 +17
Continue to review full report at Codecov.
|
Otherwise looking good. |
Ready for review |
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.
also conflicts with your other PR, otherwise LGTM.
dirty_equals/_other.py
Outdated
Args: | ||
hash_type: The hash type to check. Must be specified. | ||
|
||
```py title="IsUUID" |
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.
```py title="IsUUID" | |
```py title="IsHash" |
dirty_equals/_other.py
Outdated
'md5': r'^[a-fA-F\d]{32}$', | ||
'sha-1': r'^[a-fA-F\d]{40}$', | ||
'sha-256': r'^[a-fA-F\d]{64}$', |
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.
'md5': r'^[a-fA-F\d]{32}$', | |
'sha-1': r'^[a-fA-F\d]{40}$', | |
'sha-256': r'^[a-fA-F\d]{64}$', | |
'md5': r'[a-fA-F\d]{32}', | |
'sha-1': r'[a-fA-F\d]{40}', | |
'sha-256': r'[a-fA-F\d]{64}', |
Since you're using fullmatch
dirty_equals/_other.py
Outdated
A class that checks if a value is a valid common hash type, using a simple length and allowed characters regex. | ||
""" | ||
|
||
def __init__(self, hash_type: Literal['md5', 'sha-1', 'sha-256']): |
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.
def __init__(self, hash_type: Literal['md5', 'sha-1', 'sha-256']): | |
def __init__(self, hash_type: HashTypes): |
dirty_equals/_other.py
Outdated
allowed_hashes = 'md5', 'sha-1', 'sha-256' | ||
if hash_type not in allowed_hashes: |
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.
allowed_hashes = 'md5', 'sha-1', 'sha-256' | |
if hash_type not in allowed_hashes: | |
if hash_type not in HashTypes.__args__: |
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.
That's neat! Didn't know you could do that
conflicts too. |
Think that's all your changes and conflicts gone, let me know if I missed anything. |
Thanks so much @osintalex, I'll make a new release now. |
|
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [coverage](https://github.com/nedbat/coveragepy) | `==7.2.2` -> `==7.2.5` | [![age](https://badges.renovateapi.com/packages/pypi/coverage/7.2.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/coverage/7.2.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/coverage/7.2.5/compatibility-slim/7.2.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/coverage/7.2.5/confidence-slim/7.2.2)](https://docs.renovatebot.com/merge-confidence/) | | [dirty-equals](https://github.com/samuelcolvin/dirty-equals) ([changelog](https://github.com/samuelcolvin/dirty-equals/releases)) | `==0.5.0` -> `==0.6.0` | [![age](https://badges.renovateapi.com/packages/pypi/dirty-equals/0.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/dirty-equals/0.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/dirty-equals/0.6.0/compatibility-slim/0.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/dirty-equals/0.6.0/confidence-slim/0.5.0)](https://docs.renovatebot.com/merge-confidence/) | | [mkdocs](https://github.com/mkdocs/mkdocs) ([changelog](https://www.mkdocs.org/about/release-notes/)) | `==1.4.2` -> `==1.4.3` | [![age](https://badges.renovateapi.com/packages/pypi/mkdocs/1.4.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/mkdocs/1.4.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/mkdocs/1.4.3/compatibility-slim/1.4.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/mkdocs/1.4.3/confidence-slim/1.4.2)](https://docs.renovatebot.com/merge-confidence/) | | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `==9.1.5` -> `==9.1.9` | [![age](https://badges.renovateapi.com/packages/pypi/mkdocs-material/9.1.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/mkdocs-material/9.1.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/mkdocs-material/9.1.9/compatibility-slim/9.1.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/mkdocs-material/9.1.9/confidence-slim/9.1.5)](https://docs.renovatebot.com/merge-confidence/) | | [mock](http://mock.readthedocs.org/en/latest/) ([source](https://github.com/testing-cabal/mock)) | `==5.0.1` -> `==5.0.2` | [![age](https://badges.renovateapi.com/packages/pypi/mock/5.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/mock/5.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/mock/5.0.2/compatibility-slim/5.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/mock/5.0.2/confidence-slim/5.0.1)](https://docs.renovatebot.com/merge-confidence/) | | [pyright](https://github.com/RobertCraigie/pyright-python) | `==1.1.302` -> `==1.1.306` | [![age](https://badges.renovateapi.com/packages/pypi/pyright/1.1.306/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/pyright/1.1.306/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/pyright/1.1.306/compatibility-slim/1.1.302)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/pyright/1.1.306/confidence-slim/1.1.302)](https://docs.renovatebot.com/merge-confidence/) | | [pytest](https://docs.pytest.org/en/latest/) ([source](https://github.com/pytest-dev/pytest), [changelog](https://docs.pytest.org/en/stable/changelog.html)) | `==7.2.2` -> `==7.3.1` | [![age](https://badges.renovateapi.com/packages/pypi/pytest/7.3.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/pytest/7.3.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/pytest/7.3.1/compatibility-slim/7.2.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/pytest/7.3.1/confidence-slim/7.2.2)](https://docs.renovatebot.com/merge-confidence/) | | [typer](https://github.com/tiangolo/typer) | `==0.7.0` -> `==0.9.0` | [![age](https://badges.renovateapi.com/packages/pypi/typer/0.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/typer/0.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/typer/0.9.0/compatibility-slim/0.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/typer/0.9.0/confidence-slim/0.7.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>nedbat/coveragepy</summary> ### [`v7.2.5`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-725--2023-04-30) [Compare Source](https://github.com/nedbat/coveragepy/compare/7.2.4...7.2.5) - Fix: `html_report()` could fail with an AttributeError on `isatty` if run in an unusual environment where sys.stdout had been replaced. This is now fixed. .. \_changes\_7-2-4: ### [`v7.2.4`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-724--2023-04-28) [Compare Source](https://github.com/nedbat/coveragepy/compare/7.2.3...7.2.4) PyCon 2023 sprint fixes! - Fix: with `relative_files = true`, specifying a specific file to include or omit wouldn't work correctly (`issue 1604`*). This is now fixed, with testing help by `Marc Gibbons <pull 1608_>`*. - Fix: the XML report would have an incorrect `<source>` element when using relative files and the source option ended with a slash (`issue 1541`*). This is now fixed, thanks to `Kevin Brown-Silva <pull 1608_>`*. - When the HTML report location is printed to the terminal, it's now a terminal-compatible URL, so that you can click the location to open the HTML file in your browser. Finishes `issue 1523`\_ thanks to `Ricardo Newbery <pull 1613_>`\_. - Docs: a new :ref:`Migrating page <migrating>` with details about how to migrate between major versions of coverage.py. It currently covers the wildcard changes in 7.x. Thanks, `Brian Grohe <pull 1610_>`\_. .. \_issue 1523:[https://github.com/nedbat/coveragepy/issues/1523](https://github.com/nedbat/coveragepy/issues/1523)3 .. \_issue 1541[https://github.com/nedbat/coveragepy/issues/1541](https://github.com/nedbat/coveragepy/issues/1541)41 .. \_issue 160[https://github.com/nedbat/coveragepy/issues/1604](https://github.com/nedbat/coveragepy/issues/1604)604 .. \_pull 16[https://github.com/nedbat/coveragepy/pull/1608](https://github.com/nedbat/coveragepy/pull/1608)1608 .. \_pull 1[https://github.com/nedbat/coveragepy/pull/1609](https://github.com/nedbat/coveragepy/pull/1609)/1609 .. \_pull [https://github.com/nedbat/coveragepy/pull/1610](https://github.com/nedbat/coveragepy/pull/1610)l/1610 .. \_pull[https://github.com/nedbat/coveragepy/pull/1613](https://github.com/nedbat/coveragepy/pull/1613)ll/1613 .. \_changes\_7-2-3: ### [`v7.2.3`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-723--2023-04-06) [Compare Source](https://github.com/nedbat/coveragepy/compare/7.2.2...7.2.3) - Fix: the :ref:`config_run_sigterm` setting was meant to capture data if a process was terminated with a SIGTERM signal, but it didn't always. This was fixed thanks to `Lewis Gaul <pull 1600_>`*, closing `issue 1599`*. - Performance: HTML reports with context information are now much more compact. File sizes are typically as small as one-third the previous size, but can be dramatically smaller. This closes `issue 1584`\_ thanks to `Oleh Krehel <pull 1587_>`\_. - Development dependencies no longer use hashed pins, closing `issue 1592`\_. .. \_issue 1584:[https://github.com/nedbat/coveragepy/issues/1584](https://github.com/nedbat/coveragepy/issues/1584)4 .. \_pull 1587[https://github.com/nedbat/coveragepy/pull/1587](https://github.com/nedbat/coveragepy/pull/1587)87 .. \_issue 159[https://github.com/nedbat/coveragepy/issues/1592](https://github.com/nedbat/coveragepy/issues/1592)592 .. \_issue 15[https://github.com/nedbat/coveragepy/issues/1599](https://github.com/nedbat/coveragepy/issues/1599)1599 .. \_pull 1[https://github.com/nedbat/coveragepy/pull/1600](https://github.com/nedbat/coveragepy/pull/1600)/1600 .. \_changes\_7-2-2: </details> <details> <summary>samuelcolvin/dirty-equals</summary> ### [`v0.6.0`](https://github.com/samuelcolvin/dirty-equals/releases/tag/v0.6.0): 2023-04-28 [Compare Source](https://github.com/samuelcolvin/dirty-equals/compare/v0.5.0...v0.6.0) #### What's Changed - Depend on typing-extensions only for Python < 3.8 by [@​mgorny](https://github.com/mgorny) in [https://github.com/samuelcolvin/dirty-equals/pull/50](https://github.com/samuelcolvin/dirty-equals/pull/50) - Feat add IsHash by [@​osintalex](https://github.com/osintalex) in [https://github.com/samuelcolvin/dirty-equals/pull/44](https://github.com/samuelcolvin/dirty-equals/pull/44) - feat: add IsUrl by [@​osintalex](https://github.com/osintalex) in [https://github.com/samuelcolvin/dirty-equals/pull/47](https://github.com/samuelcolvin/dirty-equals/pull/47) - FloatInf & FloatNan by [@​FBruzzesi](https://github.com/FBruzzesi) in [https://github.com/samuelcolvin/dirty-equals/pull/57](https://github.com/samuelcolvin/dirty-equals/pull/57) - ci: move to Python 3.11 final by [@​browniebroke](https://github.com/browniebroke) in [https://github.com/samuelcolvin/dirty-equals/pull/56](https://github.com/samuelcolvin/dirty-equals/pull/56) - add check job to CI, remove caching by [@​samuelcolvin](https://github.com/samuelcolvin) in [https://github.com/samuelcolvin/dirty-equals/pull/62](https://github.com/samuelcolvin/dirty-equals/pull/62) - uprev deps by [@​samuelcolvin](https://github.com/samuelcolvin) in [https://github.com/samuelcolvin/dirty-equals/pull/63](https://github.com/samuelcolvin/dirty-equals/pull/63) - numeric exact by [@​samuelcolvin](https://github.com/samuelcolvin) in [https://github.com/samuelcolvin/dirty-equals/pull/64](https://github.com/samuelcolvin/dirty-equals/pull/64) - use pydantic-examples to test examples by [@​samuelcolvin](https://github.com/samuelcolvin) in [https://github.com/samuelcolvin/dirty-equals/pull/65](https://github.com/samuelcolvin/dirty-equals/pull/65) - Add mike by [@​samuelcolvin](https://github.com/samuelcolvin) in [https://github.com/samuelcolvin/dirty-equals/pull/66](https://github.com/samuelcolvin/dirty-equals/pull/66) #### New Contributors - [@​mgorny](https://github.com/mgorny) made their first contribution in [https://github.com/samuelcolvin/dirty-equals/pull/50](https://github.com/samuelcolvin/dirty-equals/pull/50) - [@​FBruzzesi](https://github.com/FBruzzesi) made their first contribution in [https://github.com/samuelcolvin/dirty-equals/pull/57](https://github.com/samuelcolvin/dirty-equals/pull/57) - [@​browniebroke](https://github.com/browniebroke) made their first contribution in [https://github.com/samuelcolvin/dirty-equals/pull/56](https://github.com/samuelcolvin/dirty-equals/pull/56) **Full Changelog**: samuelcolvin/dirty-equals@v0.5.0...v0.6.0 </details> <details> <summary>mkdocs/mkdocs</summary> ### [`v1.4.3`](https://github.com/mkdocs/mkdocs/releases/tag/1.4.3) [Compare Source](https://github.com/mkdocs/mkdocs/compare/1.4.2...1.4.3) - Bugfix: for the `hooks` feature, modules no longer fail to load if using some advanced Python features like dataclasses ([#​3193](https://github.com/mkdocs/mkdocs/issues/3193)) - Bugfix: Don't create `None` sitemap entries if the page has no populated URL - affects sites that exclude some files from navigation ([`07a297b`](https://github.com/mkdocs/mkdocs/commit/07a297b3b4de4a1b49469b1497ee34039b9f38fa)) - "readthedocs" theme: - Accessibility: add aria labels to Home logo ([#​3129](https://github.com/mkdocs/mkdocs/issues/3129)) and search inputs ([#​3046](https://github.com/mkdocs/mkdocs/issues/3046)) - "readthedocs" theme now supports `hljs_style:` config, same as "mkdocs" theme ([#​3199](https://github.com/mkdocs/mkdocs/issues/3199)) - Translations: - Built-in themes now also support Indonesian language ([#​3154](https://github.com/mkdocs/mkdocs/issues/3154)) - Fixed `zh_CN` translation ([#​3125](https://github.com/mkdocs/mkdocs/issues/3125)) - `tr_TR` translation becomes just `tr` - usage should remain unaffected ([#​3195](https://github.com/mkdocs/mkdocs/issues/3195)) See [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.2...1.4.3). </details> <details> <summary>squidfunk/mkdocs-material</summary> ### [`v9.1.9`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.9): mkdocs-material-9.1.9 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.8...9.1.9) - Added Telugu, Kannada and Sanskrit translations - Fixed [#​5428](https://github.com/squidfunk/mkdocs-material/issues/5428): Fixed margins for light/dark mode images in figures - Fixed [#​5420](https://github.com/squidfunk/mkdocs-material/issues/5420): Social plugin crashing for some specific Google Fonts - Fixed [#​5160](https://github.com/squidfunk/mkdocs-material/issues/5160): Instant loading makes code annotations jump (9.1.1 regression) - Fixed [#​4920](https://github.com/squidfunk/mkdocs-material/issues/4920): Social plugin not loading logo from custom icon set - Fixed social plugin crashing when only code font is specified ### [`v9.1.8`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.8): mkdocs-material-9.1.8 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.7...9.1.8) - Fixed [#​5417](https://github.com/squidfunk/mkdocs-material/issues/5417): Theme breaks when `palette` is not defined (9.1.7 regression) ### [`v9.1.7`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.7): mkdocs-material-9.1.7 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.6...9.1.7) - Updated Persian (Farsi) and Turkish translations - Fixed [#​5401](https://github.com/squidfunk/mkdocs-material/issues/5401): Added missing flag to disable built-in tags plugin - Fixed [#​5206](https://github.com/squidfunk/mkdocs-material/issues/5206): Ensure defaults are set for primary and accent colors - Fixed unnecessary inclusion of palette CSS when unused ### [`v9.1.6`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.6): mkdocs-material-9.1.6 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.5...9.1.6) - Updated Persian (Farsi) translations - Fixed [#​5300](https://github.com/squidfunk/mkdocs-material/issues/5300): Boxes in Mermaid sequence diagrams not color-abiding </details> <details> <summary>testing-cabal/mock</summary> ### [`v5.0.2`](https://github.com/testing-cabal/mock/blob/HEAD/CHANGELOG.rst#​502) [Compare Source](https://github.com/testing-cabal/mock/compare/5.0.1...5.0.2) - [gh-102978](https://github.com/testing-cabal/mock/issues/102978): Fixes :func:`unittest.mock.patch` not enforcing function signatures for methods decorated with `@classmethod` or `@staticmethod` when patch is called with `autospec=True`. - [gh-103329](https://github.com/testing-cabal/mock/issues/103329): Regression tests for the behaviour of `unittest.mock.PropertyMock` were added. </details> <details> <summary>RobertCraigie/pyright-python</summary> ### [`v1.1.306`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.305...v1.1.306) [Compare Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.305...v1.1.306) ### [`v1.1.305`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.304...v1.1.305) [Compare Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.304...v1.1.305) ### [`v1.1.304`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.303...v1.1.304) [Compare Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.303...v1.1.304) ### [`v1.1.303`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.302...v1.1.303) [Compare Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.302...v1.1.303) </details> <details> <summary>pytest-dev/pytest</summary> ### [`v7.3.1`](https://github.com/pytest-dev/pytest/releases/tag/7.3.1) [Compare Source](https://github.com/pytest-dev/pytest/compare/7.3.0...7.3.1) # pytest 7.3.1 (2023-04-14) ## Improvements - [#​10875](https://github.com/pytest-dev/pytest/issues/10875): Python 3.12 support: fixed `RuntimeError: TestResult has no addDuration method` when running `unittest` tests. - [#​10890](https://github.com/pytest-dev/pytest/issues/10890): Python 3.12 support: fixed `shutil.rmtree(onerror=...)` deprecation warning when using `tmp_path`{.interpreted-text role="fixture"}. ## Bug Fixes - [#​10896](https://github.com/pytest-dev/pytest/issues/10896): Fixed performance regression related to `tmp_path`{.interpreted-text role="fixture"} and the new `tmp_path_retention_policy`{.interpreted-text role="confval"} option. - [#​10903](https://github.com/pytest-dev/pytest/issues/10903): Fix crash `INTERNALERROR IndexError: list index out of range` which happens when displaying an exception where all entries are hidden. This reverts the change "Correctly handle `__tracebackhide__` for chained exceptions." introduced in version 7.3.0. ### [`v7.3.0`](https://github.com/pytest-dev/pytest/releases/tag/7.3.0) [Compare Source](https://github.com/pytest-dev/pytest/compare/7.2.2...7.3.0) # pytest 7.3.0 (2023-04-08) ## Features - [#​10525](https://github.com/pytest-dev/pytest/issues/10525): Test methods decorated with `@classmethod` can now be discovered as tests, following the same rules as normal methods. This fills the gap that static methods were discoverable as tests but not class methods. - [#​10755](https://github.com/pytest-dev/pytest/issues/10755): `console_output_style`{.interpreted-text role="confval"} now supports `progress-even-when-capture-no` to force the use of the progress output even when capture is disabled. This is useful in large test suites where capture may have significant performance impact. - [#​7431](https://github.com/pytest-dev/pytest/issues/7431): `--log-disable` CLI option added to disable individual loggers. - [#​8141](https://github.com/pytest-dev/pytest/issues/8141): Added `tmp_path_retention_count`{.interpreted-text role="confval"} and `tmp_path_retention_policy`{.interpreted-text role="confval"} configuration options to control how directories created by the `tmp_path`{.interpreted-text role="fixture"} fixture are kept. ## Improvements - [#​10226](https://github.com/pytest-dev/pytest/issues/10226): If multiple errors are raised in teardown, we now re-raise an `ExceptionGroup` of them instead of discarding all but the last. - [#​10658](https://github.com/pytest-dev/pytest/issues/10658): Allow `-p` arguments to include spaces (eg: `-p no:logging` instead of `-pno:logging`). Mostly useful in the `addopts` section of the configuration file. - [#​10710](https://github.com/pytest-dev/pytest/issues/10710): Added `start` and `stop` timestamps to `TestReport` objects. - [#​10727](https://github.com/pytest-dev/pytest/issues/10727): Split the report header for `rootdir`, `config file` and `testpaths` so each has its own line. - [#​10840](https://github.com/pytest-dev/pytest/issues/10840): pytest should no longer crash on AST with pathological position attributes, for example testing AST produced by \[Hylang \<https://github.com/hylang/hy>\__]{.title-ref}. - [#​6267](https://github.com/pytest-dev/pytest/issues/6267): The full output of a test is no longer truncated if the truncation message would be longer than the hidden text. The line number shown has also been fixed. ## Bug Fixes - [#​10743](https://github.com/pytest-dev/pytest/issues/10743): The assertion rewriting mechanism now works correctly when assertion expressions contain the walrus operator. - [#​10765](https://github.com/pytest-dev/pytest/issues/10765): Fixed `tmp_path`{.interpreted-text role="fixture"} fixture always raising `OSError`{.interpreted-text role="class"} on `emscripten` platform due to missing `os.getuid`{.interpreted-text role="func"}. - [#​1904](https://github.com/pytest-dev/pytest/issues/1904): Correctly handle `__tracebackhide__` for chained exceptions. ## Improved Documentation - [#​10782](https://github.com/pytest-dev/pytest/issues/10782): Fixed the minimal example in `goodpractices`{.interpreted-text role="ref"}: `pip install -e .` requires a `version` entry in `pyproject.toml` to run successfully. ## Trivial/Internal Changes - [#​10669](https://github.com/pytest-dev/pytest/issues/10669): pytest no longer depends on the \[attrs]{.title-ref} package (don't worry, nice diffs for attrs classes are still supported). </details> <details> <summary>tiangolo/typer</summary> ### [`v0.9.0`](https://github.com/tiangolo/typer/releases/tag/0.9.0) [Compare Source](https://github.com/tiangolo/typer/compare/0.8.0...0.9.0) ##### Features - ✨ Add support for PEP-593 `Annotated` for specifying options and arguments. Initial PR [#​584](https://github.com/tiangolo/typer/pull/584) by [@​ryangalamb](https://github.com/ryangalamb). - New docs: [Optional CLI arguments](https://typer.tiangolo.com/tutorial/arguments/optional/#an-alternative-cli-argument-declaration). - It is no longer required to pass a default value of `...` to mark a *CLI Argument* or *CLI Option* as required. - It is now recommended to use `Annotated` for `typer.Option()` and `typer.Argument()`. - All the docs have been updated to recommend `Annotated`. ##### Docs - 📝 Update docs examples for custom param types using `Annotated`, fix overloads for `typer.Argument`. PR [#​594](https://github.com/tiangolo/typer/pull/594) by [@​tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#​592](https://github.com/tiangolo/typer/pull/592) by [@​pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.8.0`](https://github.com/tiangolo/typer/releases/tag/0.8.0) [Compare Source](https://github.com/tiangolo/typer/compare/0.7.0...0.8.0) ##### Features - ✨ Add support for custom types and parsers. Initial PR [#​583](https://github.com/tiangolo/typer/pull/583) by [@​jpurviance](https://github.com/jpurviance). Based on original PR [#​443](https://github.com/tiangolo/typer/pull/443) by [@​paulo-raca](https://github.com/paulo-raca). - New docs: [CLI Parameter Types: Custom Types](https://typer.tiangolo.com/tutorial/parameter-types/custom-types/). ##### Upgrades - ⬆ Upgrade Rich, support 13.x. PR [#​524](https://github.com/tiangolo/typer/pull/524) by [@​musicinmybrain](https://github.com/musicinmybrain). ##### Docs - 📝 Tweak docs, Custom Types path, main page and READAME colors, broken links. PR [#​588](https://github.com/tiangolo/typer/pull/588) by [@​tiangolo](https://github.com/tiangolo). - ✏ Fix spelling (shinny -> shiny). PR [#​586](https://github.com/tiangolo/typer/pull/586) by [@​runofthemill](https://github.com/runofthemill). - 📝 Update docs about helping Typer. PR [#​547](https://github.com/tiangolo/typer/pull/547) by [@​tiangolo](https://github.com/tiangolo). - ✏️ Fix typo in datetime docs. PR [#​495](https://github.com/tiangolo/typer/pull/495) by [@​huxuan](https://github.com/huxuan). - ✏️ Add quotes to package name that includes brackets in docs. PR [#​475](https://github.com/tiangolo/typer/pull/475) by [@​gjolga](https://github.com/gjolga). ##### Internal - ⬆ Bump dawidd6/action-download-artifact from 2.24.2 to 2.26.0. PR [#​558](https://github.com/tiangolo/typer/pull/558) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#​549](https://github.com/tiangolo/typer/pull/549) by [@​pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 🔧 Add `exclude_lines` to coverage configuration. PR [#​585](https://github.com/tiangolo/typer/pull/585) by [@​dmontagu](https://github.com/dmontagu). - ⬆️ Upgrade analytics. PR [#​557](https://github.com/tiangolo/typer/pull/557) by [@​tiangolo](https://github.com/tiangolo). - 🔧 Update new issue chooser to suggest GitHub Discussions. PR [#​544](https://github.com/tiangolo/typer/pull/544) by [@​tiangolo](https://github.com/tiangolo). - 🔧 Add GitHub Discussion templates for questions. PR [#​541](https://github.com/tiangolo/typer/pull/541) by [@​tiangolo](https://github.com/tiangolo). - 🔧 Update pre-commit, Python version, isort version. PR [#​542](https://github.com/tiangolo/typer/pull/542) by [@​tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#​512](https://github.com/tiangolo/typer/pull/512) by [@​pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump nwtgck/actions-netlify from 1.2.4 to 2.0.0. PR [#​513](https://github.com/tiangolo/typer/pull/513) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Refactor CI artifact upload/download for docs previews. PR [#​516](https://github.com/tiangolo/typer/pull/516) by [@​tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#​500](https://github.com/tiangolo/typer/pull/500) by [@​pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump actions/cache from 2 to 3. PR [#​496](https://github.com/tiangolo/typer/pull/496) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump dawidd6/action-download-artifact from 2.24.1 to 2.24.2. PR [#​494](https://github.com/tiangolo/typer/pull/494) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump dawidd6/action-download-artifact from 2.9.0 to 2.24.1. PR [#​491](https://github.com/tiangolo/typer/pull/491) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/setup-python from 2 to 4. PR [#​492](https://github.com/tiangolo/typer/pull/492) by [@​dependabot\[bot\]](https://github.com/apps/dependabot). - 👷♂️ Consistently use `sys.executable` to run subprocesses, needed by OpenSUSE. PR [#​408](https://github.com/tiangolo/typer/pull/408) by [@​theMarix](https://github.com/theMarix). - 👷♂️ Ensure the `PYTHONPATH` is set properly when testing the tutorial scripts. PR [#​407](https://github.com/tiangolo/typer/pull/407) by [@​theMarix](https://github.com/theMarix). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/RobertCraigie/prisma-client-py). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuNjkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Robert Craigie <robert@craigie.dev>
I've kept very simple since this is all I'd want to use to save time in tests and imagined I'd probably want to define a custom regex for most other hashes using
IsStr
. Just my two cents though.