Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ca1b41f
chore: update (dev) dependencies; bump version
nandgator Sep 3, 2024
fa9b550
Update README.md
mattseymour Sep 9, 2024
dd11808
Merge pull request #400 from mattseymour/patch-1
nandgator Sep 13, 2024
0a791b6
fix(domain): accept .onion as a valid TLD
davidt99 Sep 15, 2024
597a030
Merge pull request #402 from davidt99/master
nandgator Sep 16, 2024
1231f6a
fix(url): add hashtag to allowed fragment characters
davidt99 Oct 6, 2024
c9585e9
Merge pull request #405 from davidt99/master
nandgator Oct 7, 2024
7114870
chore(deps): bump jinja2 from 3.1.4 to 3.1.6 in /package
dependabot[bot] Mar 6, 2025
da45d42
Merge pull request #414 from python-validators/dependabot/pip/package…
nandgator Mar 7, 2025
640763f
Add script validators inn.py
TheDrunkenBear Oct 26, 2024
56f0210
Validators inn company
TheDrunkenBear Oct 26, 2024
d1ff35b
weight coefficients from company
TheDrunkenBear Oct 27, 2024
b4f1cb9
validators inn person
TheDrunkenBear Oct 27, 2024
5ffcdb3
update __init__.py
TheDrunkenBear Oct 27, 2024
011e861
update .gitignore
TheDrunkenBear Oct 27, 2024
014a6bb
drop comment
TheDrunkenBear Oct 27, 2024
1462c7b
Update weights && add description function
TheDrunkenBear Oct 27, 2024
71c9bbb
Add link validator algorithm
TheDrunkenBear Oct 27, 2024
874f0a9
Add decorator validator
TheDrunkenBear Oct 27, 2024
2398003
Moved all files to the i18n directory.
TheDrunkenBear Oct 29, 2024
6bf90e2
add tests
TheDrunkenBear Oct 29, 2024
e50832a
rename function `inn` -> `ru_inn`
TheDrunkenBear Nov 3, 2024
7722459
add function description and fix validators imports
TheDrunkenBear Mar 27, 2025
ad2e2c5
chore: linting & formatting
nandgator Mar 28, 2025
894a069
Merge pull request #408 from tabbols95/validators_inn
nandgator Mar 28, 2025
9dac863
feat: allow custom URL scheme validation (#409)
e3krisztian Mar 28, 2025
25fcef0
Fix email regex issue 140 (#411)
cwisdo Mar 28, 2025
d6241fc
fix(uri): remove "mailto:" prefix manually (#418)
max-moser Mar 29, 2025
f7742c5
Refactor API: remove print from ru_inn, update description, and expos…
TheDrunkenBear Apr 3, 2025
b2510d1
feat: adds `doctest` (#417)
d-chris Apr 26, 2025
7c97eca
Fix: Allow Special DOI Cases Used in Public Administration Tests (#415)
MaurizioPilia Apr 26, 2025
bafe62e
feat: add Mir card validation support (#420)
TheDrunkenBear Apr 26, 2025
8691cea
chore: formatting; sync dependencies (#422)
nandgator May 1, 2025
ca2db46
chore(deps): bump certifi from 2024.6.2 to 2024.7.4 in /package
dependabot[bot] May 1, 2025
6d8a1ab
chore: prepare for new release
nandgator May 1, 2025
de4948f
Merge pull request #424 from yozachar/workshop
nandgator May 1, 2025
0b1799c
chore: updates changelog
nandgator May 1, 2025
75788ed
Merge pull request #425 from yozachar/workshop
nandgator May 1, 2025
5a80c7e
chore: update project classifiers
nandgator May 1, 2025
74a8287
Merge pull request #426 from yozachar/workshop
nandgator May 1, 2025
560428d
chore(deps): bump jinja2 from 3.1.4 to 3.1.6 in /package
dependabot[bot] May 1, 2025
a93bca3
Merge pull request #428 from python-validators/dependabot/pip/package…
nandgator May 1, 2025
e6d50ba
Merge pull request #423 from python-validators/dependabot/pip/package…
nandgator May 1, 2025
8ff15cb
chore(deps): bump requests from 2.32.3 to 2.32.4 in /package
dependabot[bot] Jun 10, 2025
5440442
Merge pull request #430 from python-validators/dependabot/pip/package…
nandgator Jun 12, 2025
402b351
fix: reject MAC addresses with mixed separators
iCasture Jul 18, 2025
9bc7e82
Merge pull request #432 from iCasture/master
nandgator Oct 3, 2025
843a2ab
chore: update codebase to reflect new username
nandgator Mar 14, 2026
73bdebe
fix: update CI workflows to use latest actions and Python versions
nandgator Mar 14, 2026
70de324
Merge pull request #447 from python-validators/workshop.jovial
nandgator Mar 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .github/workflows/pycqa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,26 @@ jobs:
steps:
# checkout repository
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
# set up specific python version
- name: Set up Python v3.8
uses: actions/setup-python@v5
- name: Set up Python v3.10
uses: actions/setup-python@v6
with:
python-version: "3.8"
python-version: "3.10"
# tooling
- name: Install 'tooling' dependencies
run: pip install -r package/requirements.tooling.txt
- name: Tooling
run: |
black .
ruff format .
ruff check .
pyright .
testing:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os: [ubuntu-latest]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}
steps:
# checkout repository again!
Expand All @@ -48,6 +48,8 @@ jobs:
cache: "pip"
# testing
- name: Install 'testing' dependencies
run: pip install -r package/requirements.testing.txt
run: |
pip install -r package/requirements.testing.txt
pip install .
- name: Testing
run: pytest .
31 changes: 6 additions & 25 deletions .github/workflows/sast.yaml
Original file line number Diff line number Diff line change
@@ -1,40 +1,21 @@
# Static Application Security Testing
name: sast

on:
workflow_dispatch:
push:
branches: ["master"]
pull_request:
branches: ["master"]
schedule:
- cron: "00 00 * * 0"

jobs:
sast:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
security-events: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Bandit
uses: mdegis/bandit-action@85fcc340c3b0bf5d86029abb49b9aac916d807b2
uses: PyCQA/bandit-action@v1
with:
# exit with 0, even with results found
# exit_zero: true # optional, default is DEFAULT
# Github token of the repository (automatically created by Github)
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information.
# File or directory to run bandit on
path: ./src/validators # optional, default is .
# Report only issues of a given severity level or higher. Can be LOW, MEDIUM or HIGH. Default is UNDEFINED (everything)
# level: # optional, default is UNDEFINED
# Report only issues of a given confidence level or higher. Can be LOW, MEDIUM or HIGH. Default is UNDEFINED (everything)
# confidence: # optional, default is UNDEFINED
# comma-separated list of paths (glob patterns supported) to exclude from scan (note that these are in addition to the excluded paths provided in the config file) (default: .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg)
excluded_paths: .github,.pytest_cache,.venv,.vscode,site,tests # optional, default is DEFAULT
# comma-separated list of test IDs to skip
# skips: # optional, default is DEFAULT
# path to a .bandit file that supplies command line arguments
# ini_path: # optional, default is DEFAULT
# https://github.com/marketplace/actions/bandit-scan is ISC licensed, by abirismyname
# https://pypi.org/project/bandit/ is Apache v2.0 licensed, by PyCQA
targets: src/validators
exclude: .github,.pytest_cache,.venv,.vscode,site,tests
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/

# VSCode
.vscode/
Expand All @@ -172,6 +172,10 @@ cython_debug/
# rtx/mise
.rtx.toml
.mise.toml
mise.toml

# ruff
.ruff_cache

# taplo
.taplo.toml
444 changes: 245 additions & 199 deletions CHANGES.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ $ . ./.venv/bin/activate
# generate documentation
$ python package/export TYPE # where TYPE is any of `doc`, `man` or `web`.

# doc - generates docs found here: https://yozachar.github.io/pyvalidators
# doc - generates docs found here: https://nandgator.github.io/pyvalidators
# man - generates sphinx based manpages
# web - generates sphinx based web docs
```
Expand Down Expand Up @@ -83,7 +83,7 @@ $ python -m http.server -d docs/_build/web
### Versioned documentation

1. To preview versioned docs, run `mike serve` (`mike` is a dev dependency).
2. Then (look at <https://yozachar.github.io/pyvalidators/stable/>)
2. Then (look at <https://nandgator.github.io/pyvalidators/stable/>)
- to publish stable docs run `mike deploy -p -u VERSION stable` after checking out to a stable tag name like `0.28.3` (note: document `VERSION = 0.29 if tag_name == 0.29.1`).
- to publish bleeding-edge docs run `mike deploy -p -u dev master` after checking out to the `master` branch.
3. This will deploy docs to the `gh-pages` branch (see: <https://github.com/python-validators/validators/tree/gh-pages/>)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013 - 2024 Konsta Vesterinen
Copyright (c) 2013 - 2025 Konsta Vesterinen

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand Down
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,25 @@ require defining a schema or form. I wanted to create a simple validation
library where validating a simple value does not require defining a form or a
schema.

```shell
pip install validators
```

Then,

```python
>>> import validators
>>>
>>>
>>> validators.email('[email protected]')
True
```

## Resources

<!-- Backup documentation URL : https://yozachar.github.io/pyvalidators/ -->
<!-- Backup documentation URL : https://nandgator.github.io/pyvalidators/ -->
<!-- Original documentation URL : https://python-validators.github.io/validators/ -->

- [Documentation](https://yozachar.github.io/pyvalidators)
- [Documentation](https://nandgator.github.io/pyvalidators)
- [Bugtracker](https://github.com/python-validators/validators/issues)
- [Security](https://github.com/python-validators/validators/blob/master/SECURITY.md)
- [Code](https://github.com/python-validators/validators/)
Expand All @@ -30,15 +36,15 @@ True

---

> **_Python 3.8 [reaches EOL in](https://endoflife.date/python) October 2024._**
> **_Python 3.9 [reaches EOL in](https://endoflife.date/python) October 2025._**

<!-- Links -->
[sast-badge]: https://github.com/python-validators/validators/actions/workflows/sast.yaml/badge.svg
[sast-link]: https://github.com/python-validators/validators/actions/workflows/sast.yaml
[pycqa-badge]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml/badge.svg
[pycqa-link]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml
[docs-badge]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
[docs-link]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment
[docs-badge]: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
[docs-link]: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment
[vs-badge]: https://img.shields.io/pypi/v/validators?logo=pypi&logoColor=white&label=version&color=blue
[vs-link]: https://pypi.python.org/pypi/validators/
[dw-badge]: https://img.shields.io/pypi/dm/validators?logo=pypi&logoColor=white&color=blue
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

| Version | Supported |
| ---------- | ------------------ |
| `>=0.33.0` | :white_check_mark: |
| `>=0.35.0` | :white_check_mark: |

## Reporting a Vulnerability

Expand Down
1 change: 1 addition & 0 deletions docs/api/card.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
::: validators.card.discover
::: validators.card.jcb
::: validators.card.mastercard
::: validators.card.mir
::: validators.card.unionpay
::: validators.card.visa
1 change: 1 addition & 0 deletions docs/api/card.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ card
.. autofunction:: discover
.. autofunction:: jcb
.. autofunction:: mastercard
.. autofunction:: mir
.. autofunction:: unionpay
.. autofunction:: visa
1 change: 1 addition & 0 deletions docs/api/i18n.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@
::: validators.i18n.fr_ssn
::: validators.i18n.ind_aadhar
::: validators.i18n.ind_pan
::: validators.i18n.ru_inn
1 change: 1 addition & 0 deletions docs/api/i18n.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ i18n
.. autofunction:: fr_ssn
.. autofunction:: ind_aadhar
.. autofunction:: ind_pan
.. autofunction:: ru_inn
18 changes: 12 additions & 6 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,25 @@ require defining a schema or form. I wanted to create a simple validation
library where validating a simple value does not require defining a form or a
schema.

```shell
pip install validators
```

Then,

```python
>>> import validators
>>>
>>>
>>> validators.email('[email protected]')
True
```

## Resources

<!-- Backup documentation URL : https://yozachar.github.io/pyvalidators/ -->
<!-- Backup documentation URL : https://nandgator.github.io/pyvalidators/ -->
<!-- Original documentation URL : https://python-validators.github.io/validators/ -->

- [Documentation](https://yozachar.github.io/pyvalidators)
- [Documentation](https://nandgator.github.io/pyvalidators)
- [Bugtracker](https://github.com/python-validators/validators/issues)
- [Security](https://github.com/python-validators/validators/blob/master/SECURITY.md)
- [Code](https://github.com/python-validators/validators/)
Expand All @@ -30,15 +36,15 @@ True

---

> **_Python 3.8 [reaches EOL in](https://endoflife.date/python) October 2024._**
> **_Python 3.9 [reaches EOL in](https://endoflife.date/python) October 2025._**

<!-- Links -->
[sast-badge]: https://github.com/python-validators/validators/actions/workflows/sast.yaml/badge.svg
[sast-link]: https://github.com/python-validators/validators/actions/workflows/sast.yaml
[pycqa-badge]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml/badge.svg
[pycqa-link]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml
[docs-badge]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
[docs-link]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment
[docs-badge]: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
[docs-link]: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment
[vs-badge]: https://img.shields.io/pypi/v/validators?logo=pypi&logoColor=white&label=version&color=blue
[vs-link]: https://pypi.python.org/pypi/validators/
[dw-badge]: https://img.shields.io/pypi/dm/validators?logo=pypi&logoColor=white&color=blue
Expand Down
20 changes: 13 additions & 7 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ seems to require defining a schema or form. I wanted to create a simple
validation library where validating a simple value does not require
defining a form or a schema.

.. code:: shell

pip install validators

Then,

.. code:: python

>>> import validators
>>>
>>>
>>> validators.email('[email protected]')
True

Expand All @@ -24,13 +30,13 @@ Resources

.. raw:: html

<!-- Backup documentation URL : https://yozachar.github.io/pyvalidators/ -->
<!-- Backup documentation URL : https://nandgator.github.io/pyvalidators/ -->

.. raw:: html

<!-- Original documentation URL : https://python-validators.github.io/validators/ -->

- `Documentation <https://yozachar.github.io/pyvalidators>`__
- `Documentation <https://nandgator.github.io/pyvalidators>`__
- `Bugtracker <https://github.com/python-validators/validators/issues>`__
- `Security <https://github.com/python-validators/validators/blob/master/SECURITY.md>`__
- `Code <https://github.com/python-validators/validators/>`__
Expand All @@ -41,8 +47,8 @@ Resources

--------------

**Python 3.8** `reaches EOL in <https://endoflife.date/python>`__
**October 2024.**
**Python 3.9** `reaches EOL in <https://endoflife.date/python>`__
**October 2025.**

.. raw:: html

Expand All @@ -57,8 +63,8 @@ Resources
:target: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml
.. |SAST| image:: https://github.com/python-validators/validators/actions/workflows/sast.yaml/badge.svg
:target: https://github.com/python-validators/validators/actions/workflows/sast.yaml
.. |Docs| image:: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
:target: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment
.. |Docs| image:: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg
:target: https://github.com/nandgator/pyvalidators/actions/workflows/pages/pages-build-deployment
.. |Version| image:: https://img.shields.io/pypi/v/validators?logo=pypi&logoColor=white&label=version&color=blue
:target: https://pypi.python.org/pypi/validators/
.. |Downloads| image:: https://img.shields.io/pypi/dm/validators?logo=pypi&logoColor=white&color=blue
Expand Down
4 changes: 2 additions & 2 deletions mkdocs.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
site_name: "validators"
site_description: "Automatic documentation from sources, for MkDocs."
site_url: "https://yozachar.github.io/pyvalidators/"
site_url: "https://nandgator.github.io/pyvalidators/"
repo_url: "https://github.com/python-validators/validators/"
edit_uri: "edit/master/docs/"
repo_name: "validators/validators"
Expand Down Expand Up @@ -63,7 +63,7 @@ extra:
provider: mike
default: stable

copyright: Copyright &copy; 2013 - 2024 Konsta Vesterinen
copyright: Copyright &copy; 2013 - 2025 Konsta Vesterinen

nav:
- Home: index.md
Expand Down
3 changes: 2 additions & 1 deletion package/export/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ def _gen_rst_docs(source: Path, refs_path: Path, only_web: bool = False, only_ma
with open(source / "docs/index.rst", "wt") as idx_f:
idx_f.write(
convert_file(source_file=source / "docs/index.md", format="md", to="rst").replace(
"\r\n", "\n" # remove carriage return in windows
"\r\n",
"\n", # remove carriage return in windows
)
+ "\n\n.. toctree::"
+ "\n :hidden:"
Expand Down
21 changes: 9 additions & 12 deletions package/requirements.sphinx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ docutils==0.20.1 \
eth-hash[pycryptodome]==0.7.0 \
--hash=sha256:b8d5a230a2b251f4a291e3164a23a14057c4a6de4b0aa4a16fa4dc9161b57e2f \
--hash=sha256:bacdc705bfd85dadd055ecd35fd1b4f846b671add101427e089a4ca2e8db310a
furo==2024.5.6 \
--hash=sha256:490a00d08c0a37ecc90de03ae9227e8eb5d6f7f750edf9807f398a2bdf2358de \
--hash=sha256:81f205a6605ebccbb883350432b4831c0196dd3d1bc92f61e1f459045b3d2b0b
furo==2024.8.6 \
--hash=sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c \
--hash=sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01
idna==3.7 \
--hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \
--hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0
Expand All @@ -112,9 +112,9 @@ imagesize==1.4.1 \
importlib-metadata==8.0.0 \
--hash=sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f \
--hash=sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812
jinja2==3.1.4 \
--hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \
--hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d
jinja2==3.1.6 \
--hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \
--hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67
markdown-it-py==3.0.0 \
--hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \
--hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb
Expand Down Expand Up @@ -215,9 +215,6 @@ pypandoc-binary==1.13 \
--hash=sha256:67c0c7af811bcf3cd4f3221be756a4975ec35b2d7df89d8de4313a8caa2cd54f \
--hash=sha256:9455fdd9521cbf4b56d79a56b806afa94c8c22f3c8ef878536e58d941a70f6d6 \
--hash=sha256:946666388eb79b307d7f497b3b33045ef807750f8e5ef3440e0ba3bbab698044
pytz==2024.1 \
--hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \
--hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319
pyyaml==6.0.1 \
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \
Expand Down Expand Up @@ -258,9 +255,9 @@ pyyaml==6.0.1 \
--hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \
--hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \
--hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f
requests==2.32.3 \
--hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \
--hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6
requests==2.32.4 \
--hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \
--hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422
snowballstemmer==2.2.0 \
--hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \
--hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a
Expand Down
Loading