Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
ad26313
Add validate_schema decorator
hltbra Jul 7, 2016
f77ee15
Merge pull request #184 from Yipit/master
alecthomas Jul 8, 2016
cee2a8c
0.9.0
thatneat Jul 21, 2016
88d18d3
Merge pull request #186 from thatneat/patch-4
alecthomas Jul 22, 2016
17204b7
0.9.1 to fix missing Error import.
alecthomas Jul 22, 2016
ffba101
Remove setup_requires from setup.py
balloob Aug 1, 2016
169eb64
Merge pull request #190 from balloob/patch-1
alecthomas Aug 1, 2016
3741f28
Bump to 0.9.2
alecthomas Aug 1, 2016
c684bae
Include tests in sdist.
alecthomas Aug 2, 2016
e92c865
Invert Range tests so nan is excluded
dangitall Aug 17, 2016
81e05ef
Merge pull request #195 from dangitall/exclude-nan-from-range
alecthomas Aug 17, 2016
406dca1
Fix Exact Sequence to Match Lengths
Aug 23, 2016
b052498
Merge pull request #197 from emarx/master
alecthomas Aug 23, 2016
bf39207
Add Equal validator
Sep 11, 2016
bf0ce8e
Merge pull request #200 from tuukkamustonen/equal-validator
tusharmakkar08 Sep 11, 2016
2f36d98
Add Unordered validator
Sep 11, 2016
73144de
Merge pull request #199 from tuukkamustonen/unordered-validator
tusharmakkar08 Sep 12, 2016
59211d7
Fix empty list evaluation
Sep 12, 2016
1cddde5
Merge pull request #201 from tuukkamustonen/fix-empty-list-handling
tusharmakkar08 Sep 12, 2016
3c5ea7f
Fixes #204: Making Path validators resilient to None.
tusharmakkar08 Sep 16, 2016
7386b1d
Merge pull request #205 from tusharmakkar08/issue-204-fix
alecthomas Sep 17, 2016
8532445
decorator: validate
Sep 18, 2016
6802ce0
Merge pull request #185 from ngergo/feature-argument-validation-decor…
alecthomas Sep 19, 2016
894651e
Handle non-subscriptable path inhumanize_error
kellerza Sep 20, 2016
a30f47f
Consistent
kellerza Sep 20, 2016
79d7ed8
Merge pull request #206 from kellerza/humanize
tusharmakkar08 Sep 22, 2016
adeb05b
Adding eq for schemas
tusharmakkar08 Sep 22, 2016
aa66c60
Fixing flake8 issues
tusharmakkar08 Sep 22, 2016
4d88b6b
Resolved 208
tusharmakkar08 Sep 23, 2016
aaa6bd2
Adding coveralls badge
tusharmakkar08 Sep 23, 2016
1cba13e
Making changes in travis.yml and coveragerc for coveralls and Python3…
tusharmakkar08 Sep 23, 2016
a321db5
Merge pull request #212 from tusharmakkar08/Adding-coveralls
tusharmakkar08 Sep 23, 2016
987fd98
Merge pull request #210 from tusharmakkar08/Issue-208
tusharmakkar08 Sep 24, 2016
55fe26d
Always evaluate {} as {}
Sep 24, 2016
14edec3
Unify doctest conventions in readme
Sep 27, 2016
2fe30ad
Add CHANGELOG
Sep 27, 2016
5b1624c
Added Number validation
nareshnootoo Sep 21, 2016
a51b20c
Added Number validation.
nareshnootoo Sep 21, 2016
8f5a41b
Merge pull request #207 from nareshnootoo/feature
tusharmakkar08 Sep 29, 2016
5e3bf14
Prevent the 'u' prefix on keys
jmwri Sep 29, 2016
0a70407
Merge commit '8f5a41b20c80b3ccc82eb60c7c7668564842008d'
jmwri Sep 29, 2016
6308d04
Merge pull request #224 from jmwri/master
tusharmakkar08 Sep 29, 2016
1998aaa
adding the recursive schema extension and literal key interpretation …
Sep 30, 2016
99fb7bd
Merge pull request #227 from mprager/schema_extension_fix
tusharmakkar08 Oct 4, 2016
cfc8536
Validate namedtuples as tuples
dangitall Oct 9, 2016
0c5a292
Merge pull request #231 from dangitall/validate-named-tuples
tusharmakkar08 Oct 10, 2016
0853189
Merge pull request #215 from tuukkamustonen/empty-dict-handling
tusharmakkar08 Oct 21, 2016
8833a97
Date format support
Oct 24, 2016
c6080c7
Merge pull request #234 from divanovGH/master
tusharmakkar08 Oct 25, 2016
c3136c4
Clamp: add a blank line to the docstring for proper rendering
mineo Oct 30, 2016
ad6e78b
Merge pull request #235 from mineo/docs-clamp
alecthomas Oct 30, 2016
e2f5e38
Added update_documentation.sh script for updating gh-pages
tusharmakkar08 Nov 2, 2016
2badd2e
Merge pull request #236 from tusharmakkar08/Issue_#217_fix
alecthomas Nov 2, 2016
8c9df70
Issue #217 fix
tusharmakkar08 Nov 3, 2016
e6708e9
Merge pull request #237 from alecthomas/dev/auto-update-documentation
alecthomas Nov 4, 2016
8de4827
Fix auto updation travis issue and adding commit, username, password …
tusharmakkar08 Nov 4, 2016
caa188e
Merge pull request #238 from alecthomas/dev/auto-update-documentation
tusharmakkar08 Nov 6, 2016
aa9c39d
Add a new validator Maybe(type) which can be used for values that are
AndreaCrotti Oct 10, 2016
f23056d
Merge pull request #232 from AndreaCrotti/add_maybe_constructor
tusharmakkar08 Nov 7, 2016
97751b8
Immediate fix for Issue_#214
tusharmakkar08 Nov 7, 2016
cdcafe9
Updated twitter api link
tusharmakkar08 Nov 15, 2016
f1b5aa8
Merge pull request #249 from tusharmakkar08/Issue-248-fix
tusharmakkar08 Nov 15, 2016
8104b6a
Added support for OrderedDict validation, including as the return type
SimplyKnownAsG Dec 7, 2016
3e1144b
Merge pull request #256 from SimplyKnownAsG/master
alecthomas Dec 8, 2016
b23fe91
added contains validation
Jan 12, 2017
9daf686
Merge pull request #258 from ziky90/added_contains_validation
alecthomas Jan 12, 2017
00551bf
Fix #259 performance issue of exponential complexity where of all dic…
odedfos Jan 17, 2017
639d794
Merge pull request #260 from odedfos/master
tusharmakkar08 Jan 19, 2017
ebc12e4
#259 Changelog
odedfos Jan 24, 2017
bab1f69
Merge pull request #262 from odedfos/master
tusharmakkar08 Jan 24, 2017
576bd86
Gitter link
alecthomas Feb 5, 2017
6ead2fb
Don't list setuptools as a runtime dependency
HolgerPeters Feb 9, 2017
0004e57
Merge pull request #266 from HolgerPeters/master
tusharmakkar08 Feb 9, 2017
78ada80
Minor docstring correction for Inclusive (#267)
svisser Feb 13, 2017
adafd76
Clear up Contains() documentation and add clarifying tests.
alecthomas Feb 16, 2017
4f903a9
Update CHANGELOG
Feb 27, 2017
7d95579
Merge pull request #271 from zackmorris/update-changelog
tusharmakkar08 Feb 28, 2017
4594a62
make markers hashable (#273)
linnik Mar 6, 2017
788d714
Fixing issue 274
Mar 20, 2017
cd0be17
Bumped up the version
tusharmakkar08 Apr 12, 2017
44fa104
Remove unicode translation
jd Apr 13, 2017
1b4ea20
Merge pull request #278 from jd/jd/fix-unicode
tusharmakkar08 Apr 13, 2017
c493b83
Version updated to accomodate unicode translation issue
tusharmakkar08 Apr 13, 2017
eea6099
Updated version for Readme in pypi
tusharmakkar08 Apr 13, 2017
2a690a8
Bumping to 0.10.5 for failing test case
tusharmakkar08 Apr 13, 2017
a404944
Better old-style class support
ngaya-ll Apr 14, 2017
25da46e
Update CHANGELOG
ngaya-ll Apr 17, 2017
01f047e
Merge pull request #279 from ngaya-ll/master
tusharmakkar08 Apr 18, 2017
1097e78
fixed issue 270
tusharmakkar08 Apr 18, 2017
a3ac0dd
Updated changelog and readme
tusharmakkar08 Apr 21, 2017
f9b4da9
Allow more extensive schemas in Maybe
balloob Apr 30, 2017
e4acaa4
Add more test cases
balloob Apr 30, 2017
ceed4f9
Merge pull request #285 from balloob/allow-maybe-schema
tusharmakkar08 May 12, 2017
f24fc02
Remove Python 3.2 from Travis config.
alecthomas May 12, 2017
33fc381
absolute import
likang May 13, 2017
85b96b3
Merge pull request #290 from likang/master
tusharmakkar08 May 13, 2017
2392366
Fix Coerce validator to catch decimal.InvalidOperation
May 31, 2017
885178e
Declare support for Python 3.6
jonafato Jun 26, 2017
599764b
Merge pull request #293 from jonafato/python-3.6
tusharmakkar08 Jun 27, 2017
d01e188
Drop support for end-of-life Python versions
jonafato Jun 26, 2017
55dcdab
Merge pull request #294 from jonafato/drop-eol-versions
tusharmakkar08 Jun 27, 2017
83600c3
Sync references to Python versions
jonafato Jun 27, 2017
77ee5da
Merge pull request #295 from jonafato/sync-up-versions
tusharmakkar08 Jun 27, 2017
bb43c57
Fixed curl command in README
Jul 31, 2017
f1fbe62
Merge pull request #300 from mattkohl/master
tusharmakkar08 Jul 31, 2017
48d1ea8
Allow partial validation when using validate decorator (#296)
svisser Sep 8, 2017
6180781
Add description to Marker
balloob Oct 31, 2017
46dc265
Merge pull request #307 from balloob/description
tusharmakkar08 Oct 31, 2017
74f5a34
Revert "Always evaluate {} as {}" as it breaks backward compatibility
tbillon Jul 11, 2017
95489bd
Make Schema([]) usage consistent with Schema({})
tbillon Jul 11, 2017
9204e83
add Schema.infer method (#311)
dtao Dec 1, 2017
d82601e
make Schema.__eq__ deterministic (#316)
dtao Dec 7, 2017
1666a68
Adding SomeOf validator (#314)
guyarad Dec 7, 2017
0dad58b
Implement nested schema support and validators compilation (#318)
jd Dec 26, 2017
b99459f
Replace Maybe class with a function
jd Dec 30, 2017
d27d1ee
Link to pytest-voluptuous in README (#321)
tuukkamustonen Jan 12, 2018
aa29b08
Added validation for default values
Feb 3, 2018
a206303
Added note about backward incompatible change
svisser Feb 9, 2018
2f2c778
Modified __lt__ in Marker class.
Feb 14, 2018
e6b57f4
Updated changelog to include changes merged after 0.10.5 release
svisser Feb 14, 2018
47fdfe9
0.11.1
alecthomas Feb 15, 2018
4c89902
Use direct link to changelog to make it work on PyPI
svisser Feb 16, 2018
1821953
Fix Python 3.x compatibility for setup.py (#332)
felixonmars Mar 1, 2018
44f5ace
Suggested practice for multi-field validation
thatneat Jun 22, 2018
72411cd
Drop support for Python 3.3 (#343)
svisser Jun 24, 2018
4b5cb5b
Added support for sets and frozensets (#342)
svisser Jun 24, 2018
bc429b7
Add support for Python 3.7
jd Jul 5, 2018
6cd3b1d
Include path in AnyInvalid errors
jd Jul 5, 2018
7dbbd05
Fix date validator
entropiae Jul 18, 2018
a66c6c4
Updated changelog with 0.11.3 release
svisser Jul 28, 2018
e958909
Updated changelog with 0.11.5 release
svisser Aug 1, 2018
5d3259c
Merge pull request #356 from svisser/update-changelog-0115
alecthomas Aug 2, 2018
55025dd
0.11.2
alecthomas Jul 27, 2018
82a5853
0.11.3
alecthomas Jul 27, 2018
c32bf6a
Use long_description_content_type='text/markdown' yay!
alecthomas Jul 31, 2018
e72fd3b
Fix open bug.
alecthomas Aug 1, 2018
360d50a
Updated Inclusive to accept description as well
svisser Oct 4, 2018
2e68114
Merge pull request #364 from svisser/feature/inclusive_description
alecthomas Oct 5, 2018
e6ef8af
Fix DeprecationWarning related to collections.Mapping
svisser Dec 14, 2018
43ea94b
Allow msg to be specified for Maybe
svisser Dec 14, 2018
54c7f34
Ignore .pytest_cache in .gitignore
svisser Dec 14, 2018
d8e042c
Merge pull request #373 from svisser/feature/maybe_msg
svisser Dec 15, 2018
5992d5e
Merge pull request #371 from svisser/fix/mapping_deprecation_warning
svisser Dec 15, 2018
c2e1cfd
Added htmlcov directory to .gitignore (#375)
svisser Dec 23, 2018
e11b20a
Allow extend to return a subclass of Schema
svisser Dec 28, 2018
9644956
Merge pull request #378 from svisser/fix/issue_370
alecthomas Dec 31, 2018
2f8412a
Preserve Unicode strings when passed to utility functions
svisser Dec 28, 2018
7e18e1c
Merge pull request #377 from svisser/fix/issue_374
alecthomas Dec 31, 2018
7b4efb4
Fix #379: Regression with Any and required
Jan 9, 2019
806d1c5
Merge pull request #380 from CedricCabessa/fix-379-regression-with-An…
alecthomas Jan 13, 2019
b3f44e9
Minor grammar fix in README
davidjb Feb 16, 2019
50c1243
Added support for default values in Inclusive schemas
nickovs Feb 10, 2019
fb8427a
Added new test cases for Inclusive and Exclusive schema entries.
nickovs Feb 12, 2019
bb4e4bf
Moved additional parameter to the end of the arguments list.
nickovs Feb 16, 2019
36c8c11
Updates README.md with svg badges
sobolevn Mar 11, 2019
953cab6
Fix datetime namespace typo
nakkurt Jun 18, 2019
2e557f7
Revert "Fix datetime namespace typo"
alecthomas Jun 18, 2019
fe04e89
0.11.6 release.
alecthomas Aug 13, 2019
ce8227f
Updated changelog with latest changes since release of 0.11.5
svisser Jul 10, 2019
961f85f
0.11.7 including changelog.
alecthomas Aug 13, 2019
f5e64dd
Allow a discrminant field in validators (#368)
ydidwania Aug 15, 2019
858ceee
Handle incomparable values in Range (#414)
monopolis Nov 28, 2019
4916049
Fix simple typo: arugment -> argument
timgates42 Dec 6, 2019
45ba818
Update schema_builder.py
timgates42 Dec 6, 2019
095cda0
Switch to CONTRIBUTIONS ONLY
alecthomas Jan 20, 2020
82de2ef
Update issue templates
alecthomas Jan 21, 2020
7fa045e
Fixed issue with 'required' not being set properly and added test (#420)
EarQuack Apr 1, 2020
580e730
Update README.md
alecthomas Aug 24, 2020
9fa0009
Added additional tests for Range, Clamp and Length + catch exceptions…
spacegaier Sep 20, 2020
f8775a7
Fix most important flake8 errors/warnings
spacegaier Sep 21, 2020
5f14afc
Updated README to include shields from pypi
spacegaier Sep 21, 2020
d8d863d
Cleanup python versions (remove unsupported + add 3.8)
spacegaier Sep 21, 2020
da9687d
Newer coverage version required for python-3.8
spacegaier Sep 21, 2020
f1b0419
Update changelog for 0.12.0
spacegaier Sep 21, 2020
a62e539
Fixed typos + made spelling more consistent (#431)
spacegaier Sep 22, 2020
6b0fdc3
Add Python 3.9 support (#433)
spacegaier Oct 7, 2020
7151438
Use "py3.9-dev" in travis-ci for now
spacegaier Oct 7, 2020
67adedd
Extended a few tests (#435)
spacegaier Nov 18, 2020
ffa09b4
Improve error message for In() and NotIn() (#425)
vmaillol-altair Nov 18, 2020
997c8db
Add sorted() for In and NotIn + fix tests (#436)
spacegaier Nov 18, 2020
de695d8
Enable stable travis-ci python 3.9 build
spacegaier Nov 19, 2020
da3cc96
Ensure `Maybe` propagates error information (#411)
monopolis Dec 6, 2020
0639df3
Grouped `Maybe` tests plus added a `Range` test (#437)
spacegaier Dec 6, 2020
1a7cb81
Remove value enumeration when validating empty list (#434)
monopolis Dec 6, 2020
c82e5d5
Extend tests for `Schema` with empty list or dict (#438)
spacegaier Dec 6, 2020
5419cff
Release 0.12.1
spacegaier Dec 6, 2020
11b4a2f
Include the regular expression in the error message
skinitimski Jan 27, 2021
ef32f11
Revert "Ensure `Maybe` propagates error information (#411)"
Tankanow Dec 7, 2020
1720439
ISSUE-439: Fix broken test
Tankanow Dec 8, 2020
e5e3b51
Change email regex match to fullmatch
leonidguadalupe Aug 31, 2021
980a55f
Release 0.12.2
Tankanow Sep 20, 2021
6cf017e
Display valid Enum values in Coerce
epenet Mar 10, 2022
c3d61ef
Release 0.13.0
spacegaier Mar 30, 2022
1d6d41a
Fix email regex match for Python 2.7 (#456)
epenet Apr 1, 2022
2e5d654
Enable github actions (#457)
epenet Apr 2, 2022
1451f0f
Ignore `Enum` if it is unavailable (#454)
epenet Apr 2, 2022
e6bd67b
Enable flake8 in github actions (#459)
epenet Apr 2, 2022
402da7c
Convert codebase to adhere to flake8 W504 (PEP 8) (#462)
spacegaier Apr 2, 2022
6003cb3
`pytest` migration + enable Python 3.10 (#464)
spacegaier Apr 3, 2022
b4584ee
Extend README to include coverage run commands + unpin `setupstools` …
spacegaier Apr 3, 2022
ea4d8be
Style and warning cleanups in README (#466)
spacegaier Apr 3, 2022
51751ca
Add tests for `Object` and `MultipleInvalid` (#467)
spacegaier Apr 3, 2022
2466ee2
Release 0.13.1 (#469)
spacegaier Apr 7, 2022
41184fe
Fix a few typos (#470)
timgates42 Jul 13, 2022
1105b31
Change to SPDX conform license string (#472)
elprimato Oct 23, 2022
bd2f9ad
add typing information (#475)
ds-cbo Feb 13, 2023
ecb0cdc
Set static PyPI project description (#476)
spacegaier Feb 13, 2023
72641b8
Fix type hint of schemas, for example for Required('key') (#478)
ds-cbo Feb 22, 2023
41bc53d
Allow error reporting on keys (#479)
KenKundert Jun 13, 2023
9405620
Remove Travis build status badge (#482)
spacegaier Jun 23, 2023
d499a41
Update contributions-only.md
alecthomas Jul 4, 2023
5599057
Fix type hints and enable mypy (#486)
KapJI Nov 12, 2023
c891a7b
Release 0.14.0
spacegaier Nov 12, 2023
82e87df
Add pytest.ini and tox.ini to sdist (#487)
mtelka Nov 14, 2023
d8a72df
Add python_requires so package installers know this requires 3.7 or n…
cjw296 Nov 17, 2023
5160e05
Release 0.14.1
spacegaier Nov 17, 2023
891b2ea
Drop duplicated type checks in Schema._compile (#495)
emontnemery Dec 1, 2023
b90b3f0
Configure renovate
alecthomas Dec 2, 2023
79d9dd7
Fix: Fix type hint for Coerce type param (#488)
Kontrolix Dec 12, 2023
ca5223f
ci: Drop support of eol versions of python (#499)
Kontrolix Dec 13, 2023
264b7e4
fix: allow path to be a list of strings, integers or any other hashab…
antoni-szych-rtbhouse Dec 13, 2023
dec0fcb
refactor(tests): fix few tests, use pytest.raises, extend raises help…
antoni-szych-rtbhouse Dec 13, 2023
abc6ed2
feat: add python 3.11 to github workflow tox matrix, remove 3.7 from …
antoni-szych-rtbhouse Dec 14, 2023
0953225
feat: add python 3.12 to github workflow tox matrix and package metad…
antoni-szych-rtbhouse Dec 14, 2023
c5189d2
Add linters configuration, reformat whole code (#503)
antoni-szych-rtbhouse Jan 31, 2024
09d0f06
Ignore styling-only commit in git blame (#505)
antoni-szych-rtbhouse Jan 31, 2024
503dd34
fix: allow unsortable containers in In and NotIn validators (fixes #4…
antoni-szych-rtbhouse Feb 1, 2024
28a799a
docs: document description field of Marker (#507)
antoni-szych-rtbhouse Feb 1, 2024
1fcf849
Release 0.14.2 (#508)
antoni-szych-rtbhouse Feb 2, 2024
ed7ca99
Remove python 3.8 support (#514)
bdraco Jun 8, 2024
9451b61
Add `Any` type to defaults (#512)
elupus Jun 16, 2024
b1b1090
Only calculate hash once for Marker objects (#513)
bdraco Jun 16, 2024
2232c0e
Release 0.15.0
spacegaier Jun 23, 2024
ca4006a
Fix vol.Remove not removing keys that do not validate (#515)
bdraco Jun 23, 2024
65f736c
Improve validator typing to allow non-number formats for min and max …
cdce8p Jun 25, 2024
4a610d3
Use typing.Container for In validator (#518)
cdce8p Jun 25, 2024
66df7be
Remove Maybe validator typing (#517)
cdce8p Jun 25, 2024
4cde166
Don't enforce type for unused description attribute (#519)
cdce8p Jun 26, 2024
16163aa
Type schema attribute as Any (#521)
cdce8p Jun 26, 2024
05c5e79
chore: move doc string to top of module
alecthomas Jun 25, 2024
85f14d8
chore: add Hermit Python
alecthomas Jun 26, 2024
23e1783
chore: bump version in __init__.py
alecthomas Jun 26, 2024
b24b80d
Fix regression with ALLOW_EXTRA and Any validator (#522)
cdce8p Jul 2, 2024
dcaaf3d
Release 0.15.2
spacegaier Jul 2, 2024
a7a55f8
Allow Generators for vol.In (#523)
cdce8p Jul 22, 2024
4a9c8f8
Fix bug with Any validator and REMOVE_EXTRA (#524)
zxdavb Apr 30, 2025
86bcb03
Add comprehensive tests for humanize.py module (#530)
manyamittal25 Aug 2, 2025
c5b63f8
i have run isort and updated few actions to latest version (#531)
doubledare704 Aug 31, 2025
4cef6ce
Feature: Support requiring anyOf a list of keys (#534)
cibernox Dec 14, 2025
87825d6
Release 0.16.0
spacegaier Dec 18, 2025
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
2 changes: 2 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[run]
omit = *tests*
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Add linters configuration, reformat whole code (#503)
c5189d2b6f9dfb3016f094561afcfb5584d143ad
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/contributions-only.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Contributions only
about: Contributions only
title: "(Contributions only)"
labels: ''
assignees: ''

---
<!--
# CONTRIBUTIONS ONLY

**What does this mean?** I do not have time to fix issues myself. The only way fixes or new features will be added is by people submitting PRs.

**Current status.** Voluptuous is largely feature stable. There hasn't been a need to add new features in a while, but there are some bugs that should be fixed.

**Why?** I no longer use Voluptuous personally (in fact I no longer regularly write Python code). Rather than leave the project in a limbo of people filing issues and wondering why they're note being worked on, I believe this notice will more clearly set expectations.
-->
38 changes: 38 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Tests

on:
pull_request:
push:
branches:
- master

jobs:
tests:
name: Tox ${{ matrix.session }} session on Python ${{ matrix.python-version }}
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
include:
- { python-version: "3.11", session: "black" }
- { python-version: "3.11", session: "flake8" }
- { python-version: "3.11", session: "mypy" }
- { python-version: "3.11", session: "isort" }
- { python-version: "3.12", session: "py312" }
- { python-version: "3.11", session: "py311" }
- { python-version: "3.10", session: "py310" }
- { python-version: "3.9", session: "py39" }

steps:
- name: Check out the repository
uses: actions/checkout@v5

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Run tox
run: |
pip install tox
tox -e ${{ matrix.session }}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,10 @@ dist
.coverage
.tox
MANIFEST
.idea
venv
docs/_build
.vscode/
.venv
.pytest_cache
htmlcov
12 changes: 0 additions & 12 deletions .travis.yml

This file was deleted.

287 changes: 287 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
# Changelog

## [0.16.0]

**New**:

* [#534](https://github.com/alecthomas/voluptuous/pull/534): Support requiring `anyOf` a list of keys

**Fixes**:

* [#523](https://github.com/alecthomas/voluptuous/pull/523): Allow Generators for `vol.In`
* [#524](https://github.com/alecthomas/voluptuous/pull/524): Fix bug with `Any` validator and `REMOVE_EXTRA`

**Changes**:

* [#530](https://github.com/alecthomas/voluptuous/pull/530): Add comprehensive tests for `humanize.py` module

## [0.15.2]

**Fixes**:

* [522](https://github.com/alecthomas/voluptuous/pull/522): Fix regression with ALLOW_EXTRA and `Any` validator

## [0.15.1]

**Fixes**:

* [515](https://github.com/alecthomas/voluptuous/pull/515): Fix `Remove` not removing keys that do not validate
* [516](https://github.com/alecthomas/voluptuous/pull/516): Improve validator typing to allow non-number formats for min and max
* [517](https://github.com/alecthomas/voluptuous/pull/517): Remove `Maybe` validator typing
* [518](https://github.com/alecthomas/voluptuous/pull/518): Use typing.Container for `In` validator
* [519](https://github.com/alecthomas/voluptuous/pull/519): Don't enforce type for unused description attribute
* [521](https://github.com/alecthomas/voluptuous/pull/521): Type schema attribute as `Any`

## [0.15.0]

**Fixes**:

* [#512](https://github.com/alecthomas/voluptuous/pull/512): Add Any type to defaults
* [#513](https://github.com/alecthomas/voluptuous/pull/513): Only calculate hash once for Marker objects

**Changes**:

* [#514](https://github.com/alecthomas/voluptuous/pull/514): Remove python 3.8 support

## [0.14.2]

**New**:
* [#507](https://github.com/alecthomas/voluptuous/pull/507): docs: document description field of Marker

**Fixes**:
* [#506](https://github.com/alecthomas/voluptuous/pull/506): fix: allow unsortable containers in In and NotIn validators (fixes [#451](https://github.com/alecthomas/voluptuous/issues/451)) (bug introduced in 0.12.1)
* [#488](https://github.com/alecthomas/voluptuous/pull/488): fix(typing): fix type hint for Coerce type param (bug introduced in 0.14.0)
* [#497](https://github.com/alecthomas/voluptuous/pull/497): fix(typing): allow path to be a list of strings, integers or any other hashables (bug introduced in 0.14.0)

**Changes**:
* [#499](https://github.com/alecthomas/voluptuous/pull/499): support: drop support for python 3.7
* [#501](https://github.com/alecthomas/voluptuous/pull/501): support: run tests on python 3.11
* [#502](https://github.com/alecthomas/voluptuous/pull/502): support: run tests on python 3.12
* [#495](https://github.com/alecthomas/voluptuous/pull/495): refactor: drop duplicated type checks in Schema._compile
* [#500](https://github.com/alecthomas/voluptuous/pull/500): refactor: fix few tests, use pytest.raises, extend raises helper
* [#503](https://github.com/alecthomas/voluptuous/pull/503): refactor: Add linters configuration, reformat whole code

## [0.14.1]

**Changes**:
* [#487](https://github.com/alecthomas/voluptuous/pull/487): Add pytest.ini and tox.ini to sdist
* [#494](https://github.com/alecthomas/voluptuous/pull/494): Add `python_requires` so package installers know requirement is >= 3.7

## [0.14.0]

**Fixes**:
* [#470](https://github.com/alecthomas/voluptuous/pull/470): Fix a few code comment typos
* [#472](https://github.com/alecthomas/voluptuous/pull/472): Change to SPDX conform license string

**New**:
* [#475](https://github.com/alecthomas/voluptuous/pull/475): Add typing information
* [#478](https://github.com/alecthomas/voluptuous/pull/478): Fix new type hint of schemas, for example for `Required('key')`
* [#486](https://github.com/alecthomas/voluptuous/pull/486): Fix new type hints and enable `mypy`
* [#479](https://github.com/alecthomas/voluptuous/pull/479): Allow error reporting on keys

**Changes**:
* [#476](https://github.com/alecthomas/voluptuous/pull/476): Set static PyPI project description
* [#482](https://github.com/alecthomas/voluptuous/pull/482): Remove Travis build status badge

## [0.13.1]

**Fixes**:

- [#439](https://github.com/alecthomas/voluptuous/pull/454): Ignore `Enum` if it is unavailable
- [#456](https://github.com/alecthomas/voluptuous/pull/456): Fix email regex match for Python 2.7

**New**:

- [#457](https://github.com/alecthomas/voluptuous/pull/457): Enable github actions
- [#462](https://github.com/alecthomas/voluptuous/pull/462): Convert codebase to adhere to `flake8` W504 (PEP 8)
- [#459](https://github.com/alecthomas/voluptuous/pull/459): Enable `flake8` in github actions
- [#464](https://github.com/alecthomas/voluptuous/pull/464): `pytest` migration + enable Python 3.10

## [0.13.0]

**Changes**:

- [#450](https://github.com/alecthomas/voluptuous/pull/450): Display valid `Enum` values in `Coerce`

## [0.12.2]

**Fixes**:

- [#439](https://github.com/alecthomas/voluptuous/issues/439): Revert Breaking `Maybe` change in 0.12.1
- [#447](https://github.com/alecthomas/voluptuous/issues/447): Fix Email Regex to not match on extra characters

## [0.12.1]

**Changes**:
- [#435](https://github.com/alecthomas/voluptuous/pull/435): Extended a few tests (`Required` and `In`)
- [#425](https://github.com/alecthomas/voluptuous/pull/425): Improve error message for `In` and `NotIn`
- [#436](https://github.com/alecthomas/voluptuous/pull/436): Add sorted() for `In` and `NotIn` + fix tests
- [#437](https://github.com/alecthomas/voluptuous/pull/437): Grouped `Maybe` tests plus added another `Range` test
- [#438](https://github.com/alecthomas/voluptuous/pull/438): Extend tests for `Schema` with empty list or dict

**New**:
- [#433](https://github.com/alecthomas/voluptuous/pull/433): Add Python 3.9 support

**Fixes**:
- [#431](https://github.com/alecthomas/voluptuous/pull/431): Fixed typos + made spelling more consistent
- [#411](https://github.com/alecthomas/voluptuous/pull/411): Ensure `Maybe` propagates error information
- [#434](https://github.com/alecthomas/voluptuous/pull/434): Remove value enumeration when validating empty list

## [0.12.0]

**Changes**:
- n/a

**New**:
- [#368](https://github.com/alecthomas/voluptuous/pull/368): Allow a discriminant field in validators

**Fixes**:
- [#420](https://github.com/alecthomas/voluptuous/pull/420): Fixed issue with 'required' not being set properly and added test
- [#414](https://github.com/alecthomas/voluptuous/pull/414): Handle incomparable values in Range
- [#427](https://github.com/alecthomas/voluptuous/pull/427): Added additional tests for Range, Clamp and Length + catch TypeError exceptions

## [0.11.7]

**Changes**:

- [#378](https://github.com/alecthomas/voluptuous/pull/378): Allow `extend()` of a `Schema` to return a subclass of a `Schema` as well.

**New**:

- [#364](https://github.com/alecthomas/voluptuous/pull/364): Accept `description` for `Inclusive` instances.
- [#373](https://github.com/alecthomas/voluptuous/pull/373): Accept `msg` for `Maybe` instances.
- [#382](https://github.com/alecthomas/voluptuous/pull/382): Added support for default values in `Inclusive` instances.

**Fixes**:

- [#371](https://github.com/alecthomas/voluptuous/pull/371): Fixed `DeprecationWarning` related to `collections.Mapping`.
- [#377](https://github.com/alecthomas/voluptuous/pull/377): Preserve Unicode strings when passed to utility functions (e.g., `Lower()`, `Upper()`).
- [#380](https://github.com/alecthomas/voluptuous/pull/380): Fixed regression with `Any` and `required` flag.

## [0.11.5]

- Fixed issue with opening README file in `setup.py`.

## [0.11.4]

- Removed use of `pypandoc` as Markdown is now supported by `setup()`.

## [0.11.3] and [0.11.2]

**Changes**:

- [#349](https://github.com/alecthomas/voluptuous/pull/349): Support Python 3.7.
- [#343](https://github.com/alecthomas/voluptuous/pull/343): Drop support for Python 3.3.

**New**:

- [#342](https://github.com/alecthomas/voluptuous/pull/342): Add support for sets and frozensets.

**Fixes**:

- [#332](https://github.com/alecthomas/voluptuous/pull/332): Fix Python 3.x compatibility for setup.py when `pypandoc` is installed.
- [#348](https://github.com/alecthomas/voluptuous/pull/348): Include path in `AnyInvalid` errors.
- [#351](https://github.com/alecthomas/voluptuous/pull/351): Fix `Date` behaviour when a custom format is specified.

## [0.11.1] and [0.11.0]

**Changes**:

- [#293](https://github.com/alecthomas/voluptuous/pull/293): Support Python 3.6.
- [#294](https://github.com/alecthomas/voluptuous/pull/294): Drop support for Python 2.6, 3.1 and 3.2.
- [#318](https://github.com/alecthomas/voluptuous/pull/318): Allow to use nested schema and allow any validator to be compiled.
- [#324](https://github.com/alecthomas/voluptuous/pull/324):
Default values MUST now pass validation just as any regular value. This is a backward incompatible change if a schema uses default values that don't pass validation against the specified schema.
- [#328](https://github.com/alecthomas/voluptuous/pull/328):
Modify `__lt__` in Marker class to allow comparison with non Marker objects, such as str and int.

**New**:

- [#307](https://github.com/alecthomas/voluptuous/pull/307): Add description field to `Marker` instances.
- [#311](https://github.com/alecthomas/voluptuous/pull/311): Add `Schema.infer` method for basic schema inference.
- [#314](https://github.com/alecthomas/voluptuous/pull/314): Add `SomeOf` validator.

**Fixes**:

- [#279](https://github.com/alecthomas/voluptuous/pull/279):
Treat Python 2 old-style classes like types when validating.
- [#280](https://github.com/alecthomas/voluptuous/pull/280): Make
`IsDir()`, `IsFile()` and `PathExists()` consistent between different Python versions.
- [#290](https://github.com/alecthomas/voluptuous/pull/290): Use absolute imports to avoid import conflicts.
- [#291](https://github.com/alecthomas/voluptuous/pull/291): Fix `Coerce` validator to catch `decimal.InvalidOperation`.
- [#298](https://github.com/alecthomas/voluptuous/pull/298): Make `Schema([])` usage consistent with `Schema({})`.
- [#303](https://github.com/alecthomas/voluptuous/pull/303): Allow partial validation when using validate decorator.
- [#316](https://github.com/alecthomas/voluptuous/pull/316): Make `Schema.__eq__` deterministic.
- [#319](https://github.com/alecthomas/voluptuous/pull/319): Replace implementation of `Maybe(s)` with `Any(None, s)` to allow it to be compiled.

## [0.10.5]

- [#278](https://github.com/alecthomas/voluptuous/pull/278): Unicode
translation to python 2 issue fixed.

## [0.10.2]

**Changes**:

- [#195](https://github.com/alecthomas/voluptuous/pull/195):
`Range` raises `RangeInvalid` when testing `math.nan`.
- [#215](https://github.com/alecthomas/voluptuous/pull/215):
`{}` and `[]` now always evaluate as is, instead of as any dict or any list.
To specify a free-form list, use `list` instead of `[]`. To specify a
free-form dict, use `dict` instead of `Schema({}, extra=ALLOW_EXTRA)`.
- [#224](https://github.com/alecthomas/voluptuous/pull/224):
Change the encoding of keys in error messages from Unicode to UTF-8.

**New**:

- [#185](https://github.com/alecthomas/voluptuous/pull/185):
Add argument validation decorator.
- [#199](https://github.com/alecthomas/voluptuous/pull/199):
Add `Unordered`.
- [#200](https://github.com/alecthomas/voluptuous/pull/200):
Add `Equal`.
- [#207](https://github.com/alecthomas/voluptuous/pull/207):
Add `Number`.
- [#210](https://github.com/alecthomas/voluptuous/pull/210):
Add `Schema` equality check.
- [#212](https://github.com/alecthomas/voluptuous/pull/212):
Add `coveralls`.
- [#227](https://github.com/alecthomas/voluptuous/pull/227):
Improve `Marker` management in `Schema`.
- [#232](https://github.com/alecthomas/voluptuous/pull/232):
Add `Maybe`.
- [#234](https://github.com/alecthomas/voluptuous/pull/234):
Add `Date`.
- [#236](https://github.com/alecthomas/voluptuous/pull/236), [#237](https://github.com/alecthomas/voluptuous/pull/237), and [#238](https://github.com/alecthomas/voluptuous/pull/238):
Add script for updating `gh-pages`.
- [#256](https://github.com/alecthomas/voluptuous/pull/256):
Add support for `OrderedDict` validation.
- [#258](https://github.com/alecthomas/voluptuous/pull/258):
Add `Contains`.

**Fixes**:

- [#197](https://github.com/alecthomas/voluptuous/pull/197):
`ExactSequence` checks sequences are the same length.
- [#201](https://github.com/alecthomas/voluptuous/pull/201):
Empty lists are evaluated as is.
- [#205](https://github.com/alecthomas/voluptuous/pull/205):
Filepath validators correctly handle `None`.
- [#206](https://github.com/alecthomas/voluptuous/pull/206):
Handle non-subscriptable types in `humanize_error`.
- [#231](https://github.com/alecthomas/voluptuous/pull/231):
Validate `namedtuple` as a `tuple`.
- [#235](https://github.com/alecthomas/voluptuous/pull/235):
Update docstring.
- [#249](https://github.com/alecthomas/voluptuous/pull/249):
Update documentation.
- [#262](https://github.com/alecthomas/voluptuous/pull/262):
Fix a performance issue of exponential complexity where all of the dict keys were matched against all keys in the schema.
This resulted in O(n*m) complexity where n is the number of keys in the dict being validated and m is the number of keys in the schema.
The fix ensures that each key in the dict is matched against the relevant schema keys only. It now works in O(n).
- [#266](https://github.com/alecthomas/voluptuous/pull/266):
Remove setuptools as a dependency.

## 0.9.3 (2016-08-03)

Changelog not kept for 0.9.3 and earlier releases.
4 changes: 4 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
include *.md
include COPYING
include voluptuous/tests/*.py
include voluptuous/tests/*.md
include pyproject.toml
include tox.ini
Loading