dependabot[bot] be3ab72ae6 Bump validators from 0.35.0 to 0.36.0 in /scan (#267)
Bumps [validators](https://github.com/python-validators/validators) from
0.35.0 to 0.36.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python-validators/validators/releases">validators's
releases</a>.</em></p>
<blockquote>
<h2>0.36.0</h2>
<p><em><strong>Breaking</strong></em> ⚠️</p>
<ul>
<li>Drops support for Python <code>v3.9</code> and <code>v3.10</code>.
Python <code>v3.11</code> or newer is required. (<a
href="https://redirect.github.com/python-validators/validators/pull/488">#488</a>)</li>
<li>Stricter validation: the following inputs, previously accepted by
mistake, are now rejected.
<ul>
<li><code>isin()</code> now verifies the check digit, which was
previously ignored. Lowercase ISINs are still accepted. (<a
href="https://redirect.github.com/python-validators/validators/pull/464">#464</a>)</li>
<li><code>cusip()</code> and <code>sedol()</code> require a numeric
check digit. (<a
href="https://redirect.github.com/python-validators/validators/pull/487">#487</a>)</li>
<li><code>md5()</code>, <code>sha1()</code>, <code>sha224()</code>,
<code>sha256()</code>, <code>sha384()</code>, <code>sha512()</code>,
<code>base16()</code>, <code>base32()</code>, <code>base58()</code> and
<code>base64()</code> reject trailing characters, such as a trailing
newline. (<a
href="https://redirect.github.com/python-validators/validators/pull/486">#486</a>)</li>
<li><code>ind_pan()</code> requires a full-string match. (<a
href="https://redirect.github.com/python-validators/validators/pull/478">#478</a>)</li>
<li><code>fr_ssn()</code> no longer accepts a comma as the gender or
Corsica department character. (<a
href="https://redirect.github.com/python-validators/validators/pull/469">#469</a>,
merged as <a
href="https://redirect.github.com/python-validators/validators/pull/491">#491</a>)</li>
<li><code>domain()</code> rejects an underscore in the last label (<a
href="https://redirect.github.com/python-validators/validators/pull/485">#485</a>)
and names longer than 253 octets once IDNA-encoded, as defined by RFC
1035. (<a
href="https://redirect.github.com/python-validators/validators/pull/461">#461</a>)</li>
<li><code>mastercard()</code> accepts only the 2221-2720 range of the
2-series BINs. (<a
href="https://redirect.github.com/python-validators/validators/pull/467">#467</a>)</li>
<li><code>eth_address()</code> rejects non-hexadecimal characters. (<a
href="https://redirect.github.com/python-validators/validators/pull/466">#466</a>)</li>
<li><code>mac_address()</code> rejects mixed separators. (<a
href="https://redirect.github.com/python-validators/validators/pull/432">#432</a>)</li>
<li><code>slug()</code> rejects a trailing newline, and telnet URIs
reject control characters. (<a
href="https://redirect.github.com/python-validators/validators/pull/492">#492</a>)</li>
</ul>
</li>
</ul>
<p><em><strong>Features</strong></em></p>
<ul>
<li>feat(uri): add telnet URI validation per RFC 4248 by <a
href="https://github.com/tofetpuzo"><code>@​tofetpuzo</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/446">#446</a></li>
<li>Accept <code>file://</code> URLs per RFC 8089 by <a
href="https://github.com/itzzdev09"><code>@​itzzdev09</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/483">#483</a></li>
<li>cron: accept a step over a range (e.g. <code>1-5/2</code>) and in
list items by <a
href="https://github.com/itzzdev09"><code>@​itzzdev09</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/482">#482</a></li>
<li>Accept lowercase IBANs in <code>iban()</code> by <a
href="https://github.com/sayantanmandal1"><code>@​sayantanmandal1</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/471">#471</a></li>
<li>fix(cron): accept day-of-week <code>7</code> as a Sunday alias by <a
href="https://github.com/binggao1230"><code>@​binggao1230</code></a> in
<a
href="https://redirect.github.com/python-validators/validators/pull/470">#470</a></li>
<li>Accept a trailing dot on simple hostnames with <code>rfc_1034</code>
by <a
href="https://github.com/assinscreedFC"><code>@​assinscreedFC</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/462">#462</a></li>
<li>fix(crypto_addresses): accept testnet (<code>tb</code>) segwit
addresses by <a
href="https://github.com/Jordan-Bourillot"><code>@​Jordan-Bourillot</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/466">#466</a></li>
</ul>
<p><em><strong>Maintenance</strong></em></p>
<ul>
<li>chore(deps): bump requests from 2.32.3 to 2.32.4 in /package by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/430">#430</a></li>
<li>fix: reject MAC addresses with mixed separators by <a
href="https://github.com/iCasture"><code>@​iCasture</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/432">#432</a></li>
<li>feat: Optimize slug. Extend tests. by <a
href="https://github.com/welder87"><code>@​welder87</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/439">#439</a></li>
<li>chore: update codebase to reflect new username by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/447">#447</a></li>
<li>docs: correct PossibleValueTypes note in between to include None by
<a href="https://github.com/SAY-5"><code>@​SAY-5</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/460">#460</a></li>
<li>chore!: drop Python 3.9 and 3.10, bump vulnerable dev dependencies
by <a href="https://github.com/nandgator"><code>@​nandgator</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/488">#488</a></li>
<li>fix: restore certifi and jinja2 pins downgraded by stale lock by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/489">#489</a></li>
<li>chore: use native pyproject config for tox and pytest by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/490">#490</a></li>
<li>test: cover RFC length limits for domain() and hostname() by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/493">#493</a></li>
<li>chore!: adopt uv and PEP 735 dependency groups by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/495">#495</a></li>
<li>ci: update GitHub Actions to their latest versions by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/496">#496</a></li>
<li>docs: explain why the documentation is hosted on the maintainer's
fork by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/497">#497</a></li>
<li>docs: hide badges from the man page; upgrade docs tooling to latest
stable by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/498">#498</a></li>
<li>ci: deploy versioned documentation with mike from the fork by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/500">#500</a></li>
<li>docs!: build and version the online documentation with Zensical by
<a href="https://github.com/nandgator"><code>@​nandgator</code></a> in
<a
href="https://redirect.github.com/python-validators/validators/pull/502">#502</a></li>
<li>ci: publish to PyPI with trusted publishing by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/504">#504</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/python-validators/validators/compare/0.35.0...0.36.0"><code>0.35.0...0.36.0</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python-validators/validators/blob/master/CHANGES.md">validators's
changelog</a>.</em></p>
<blockquote>
<h2>0.36.0 (2026-10-10)</h2>
<p><em><strong>Breaking</strong></em> ⚠️</p>
<ul>
<li>Drops support for Python <code>v3.9</code> and <code>v3.10</code>.
Python <code>v3.11</code> or newer is required. (<a
href="https://redirect.github.com/python-validators/validators/pull/488">#488</a>)</li>
<li>Stricter validation: the following inputs, previously accepted by
mistake, are now rejected.
<ul>
<li><code>isin()</code> now verifies the check digit, which was
previously ignored. Lowercase ISINs are still accepted. (<a
href="https://redirect.github.com/python-validators/validators/pull/464">#464</a>)</li>
<li><code>cusip()</code> and <code>sedol()</code> require a numeric
check digit. (<a
href="https://redirect.github.com/python-validators/validators/pull/487">#487</a>)</li>
<li><code>md5()</code>, <code>sha1()</code>, <code>sha224()</code>,
<code>sha256()</code>, <code>sha384()</code>, <code>sha512()</code>,
<code>base16()</code>, <code>base32()</code>, <code>base58()</code> and
<code>base64()</code> reject trailing characters, such as a trailing
newline. (<a
href="https://redirect.github.com/python-validators/validators/pull/486">#486</a>)</li>
<li><code>ind_pan()</code> requires a full-string match. (<a
href="https://redirect.github.com/python-validators/validators/pull/478">#478</a>)</li>
<li><code>fr_ssn()</code> no longer accepts a comma as the gender or
Corsica department character. (<a
href="https://redirect.github.com/python-validators/validators/pull/469">#469</a>,
merged as <a
href="https://redirect.github.com/python-validators/validators/pull/491">#491</a>)</li>
<li><code>domain()</code> rejects an underscore in the last label (<a
href="https://redirect.github.com/python-validators/validators/pull/485">#485</a>)
and names longer than 253 octets once IDNA-encoded, as defined by RFC
1035. (<a
href="https://redirect.github.com/python-validators/validators/pull/461">#461</a>)</li>
<li><code>mastercard()</code> accepts only the 2221-2720 range of the
2-series BINs. (<a
href="https://redirect.github.com/python-validators/validators/pull/467">#467</a>)</li>
<li><code>eth_address()</code> rejects non-hexadecimal characters. (<a
href="https://redirect.github.com/python-validators/validators/pull/466">#466</a>)</li>
<li><code>mac_address()</code> rejects mixed separators. (<a
href="https://redirect.github.com/python-validators/validators/pull/432">#432</a>)</li>
<li><code>slug()</code> rejects a trailing newline, and telnet URIs
reject control characters. (<a
href="https://redirect.github.com/python-validators/validators/pull/492">#492</a>)</li>
</ul>
</li>
</ul>
<p><em><strong>Features</strong></em></p>
<ul>
<li>feat(uri): add telnet URI validation per RFC 4248 by <a
href="https://github.com/tofetpuzo"><code>@​tofetpuzo</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/446">#446</a></li>
<li>Accept <code>file://</code> URLs per RFC 8089 by <a
href="https://github.com/itzzdev09"><code>@​itzzdev09</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/483">#483</a></li>
<li>cron: accept a step over a range (e.g. <code>1-5/2</code>) and in
list items by <a
href="https://github.com/itzzdev09"><code>@​itzzdev09</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/482">#482</a></li>
<li>Accept lowercase IBANs in <code>iban()</code> by <a
href="https://github.com/sayantanmandal1"><code>@​sayantanmandal1</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/471">#471</a></li>
<li>fix(cron): accept day-of-week <code>7</code> as a Sunday alias by <a
href="https://github.com/binggao1230"><code>@​binggao1230</code></a> in
<a
href="https://redirect.github.com/python-validators/validators/pull/470">#470</a></li>
<li>Accept a trailing dot on simple hostnames with <code>rfc_1034</code>
by <a
href="https://github.com/assinscreedFC"><code>@​assinscreedFC</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/462">#462</a></li>
<li>fix(crypto_addresses): accept testnet (<code>tb</code>) segwit
addresses by <a
href="https://github.com/Jordan-Bourillot"><code>@​Jordan-Bourillot</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/466">#466</a></li>
</ul>
<p><em><strong>Maintenance</strong></em></p>
<ul>
<li>chore(deps): bump requests from 2.32.3 to 2.32.4 in /package by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/430">#430</a></li>
<li>fix: reject MAC addresses with mixed separators by <a
href="https://github.com/iCasture"><code>@​iCasture</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/432">#432</a></li>
<li>feat: Optimize slug. Extend tests. by <a
href="https://github.com/welder87"><code>@​welder87</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/439">#439</a></li>
<li>chore: update codebase to reflect new username by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/447">#447</a></li>
<li>docs: correct PossibleValueTypes note in between to include None by
<a href="https://github.com/SAY-5"><code>@​SAY-5</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/460">#460</a></li>
<li>chore!: drop Python 3.9 and 3.10, bump vulnerable dev dependencies
by <a href="https://github.com/nandgator"><code>@​nandgator</code></a>
in <a
href="https://redirect.github.com/python-validators/validators/pull/488">#488</a></li>
<li>fix: restore certifi and jinja2 pins downgraded by stale lock by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/489">#489</a></li>
<li>chore: use native pyproject config for tox and pytest by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/490">#490</a></li>
<li>test: cover RFC length limits for domain() and hostname() by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/493">#493</a></li>
<li>chore!: adopt uv and PEP 735 dependency groups by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/495">#495</a></li>
<li>ci: update GitHub Actions to their latest versions by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/496">#496</a></li>
<li>docs: explain why the documentation is hosted on the maintainer's
fork by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/497">#497</a></li>
<li>docs: hide badges from the man page; upgrade docs tooling to latest
stable by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/498">#498</a></li>
<li>ci: deploy versioned documentation with mike from the fork by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/500">#500</a></li>
<li>docs!: build and version the online documentation with Zensical by
<a href="https://github.com/nandgator"><code>@​nandgator</code></a> in
<a
href="https://redirect.github.com/python-validators/validators/pull/502">#502</a></li>
<li>ci: publish to PyPI with trusted publishing by <a
href="https://github.com/nandgator"><code>@​nandgator</code></a> in <a
href="https://redirect.github.com/python-validators/validators/pull/504">#504</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/python-validators/validators/compare/0.35.0...0.36.0"><code>0.35.0...0.36.0</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python-validators/validators/commit/e2e49fb3bb4b9f1ce955638386aa167356d24055"><code>e2e49fb</code></a>
ci: publish to PyPI with trusted publishing</li>
<li><a
href="https://github.com/python-validators/validators/commit/f749c78730161d6d743f9bb1512010c405ee3a5d"><code>f749c78</code></a>
docs!: build and version the online documentation with Zensical</li>
<li><a
href="https://github.com/python-validators/validators/commit/7bffa5ed51f4b0ac7d872f57aa3197bb8c1209af"><code>7bffa5e</code></a>
ci: deploy versioned documentation with mike from the fork</li>
<li><a
href="https://github.com/python-validators/validators/commit/3bf8a58c57b2069ffc56a56874eb5d177e1e5c43"><code>3bf8a58</code></a>
docs: add <a
href="https://redirect.github.com/python-validators/validators/issues/498">#498</a>
to the 0.36.0 changelog</li>
<li><a
href="https://github.com/python-validators/validators/commit/9176e63cb9d9860371a972d72b8902c0e351826f"><code>9176e63</code></a>
docs: add <a
href="https://redirect.github.com/python-validators/validators/issues/496">#496</a>
and <a
href="https://redirect.github.com/python-validators/validators/issues/497">#497</a>
to the 0.36.0 changelog</li>
<li><a
href="https://github.com/python-validators/validators/commit/e035f1b40e7b91126b3c6fd9a10d0590ef1e5784"><code>e035f1b</code></a>
docs: add <a
href="https://redirect.github.com/python-validators/validators/issues/495">#495</a>
to the 0.36.0 changelog</li>
<li><a
href="https://github.com/python-validators/validators/commit/d3f0048e2831fba85e642cdc30c205639db872af"><code>d3f0048</code></a>
chore: prepare for release 0.36.0</li>
<li><a
href="https://github.com/python-validators/validators/commit/cdbe4af7f2f86c639774d5d94d81d06cf2dc7063"><code>cdbe4af</code></a>
docs: hide badges from the man page; regenerate docs with current
tooling</li>
<li><a
href="https://github.com/python-validators/validators/commit/fd5333a0dafcc33cba3dc73f8c559cbb18ce6d23"><code>fd5333a</code></a>
chore: loosen docs tooling bounds, rename mkdocstrings 'import' to
'inventories'</li>
<li><a
href="https://github.com/python-validators/validators/commit/16ec0ef8b5cf5478b665e3826f31f2af053282d7"><code>16ec0ef</code></a>
ci: update GitHub Actions to their latest versions</li>
<li>Additional commits viewable in <a
href="https://github.com/python-validators/validators/compare/0.35.0...0.36.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=validators&package-manager=pip&previous-version=0.35.0&new-version=0.36.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-15 14:20:29 +02:00
2026-03-31 10:44:06 +02:00
2026-10-12 14:01:19 +02:00
2023-12-27 21:41:50 +01:00
2023-12-07 12:52:41 +01:00
2023-12-27 21:41:50 +01:00
2023-12-07 12:52:41 +01:00
2026-02-23 09:15:23 +01:00
2023-12-27 21:41:50 +01:00

logo

Mailgoose is a web application that allows the users to check whether their SPF, DMARC and DKIM configuration is set up correctly. CERT PL uses it to run bezpiecznapoczta.cert.pl, an online service that helps Polish institutions to configure their domains to decrease the probability of successful e-mail spoofing.

Under the hood, Mailgoose uses checkdmarc and dkimpy, among others.

Quick Start 🔨 | Docs 📚

Features

For an up-to-date list of features, please refer to the documentation.

Screenshots

Check results

Development

Tests

To run the tests, use:

./scripts/test

Code formatting

Mailgoose uses pre-commit to run linters and format the code. pre-commit is executed on CI to verify that the code is formatted properly.

To run it locally, use:

pre-commit run --all-files

To setup pre-commit so that it runs before each commit, use:

pre-commit install

Building the docs

To build the documentation, use:

cd docs
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
make html

Releasing

Before creating new release for mailgoose, you should update files with new version number:

  • scan/setup.py#L12 - version=""
  • docs/conf.py#L36 - release = ""

Then create new release with given version.

Contributing

Contributions are welcome! We will appreciate both ideas for improvements (added as GitHub issues) as well as pull requests with new features or code improvements.

However obvious it may seem we kindly remind you that by contributing to mailgoose you agree that the BSD 3-Clause License shall apply to your input automatically, without the need for any additional declarations to be made.

Languages
Python 83.3%
HTML 13.2%
Shell 2.6%
Dockerfile 0.5%
CSS 0.4%