- add
SettingsManager.set_list()
- add
SettingsManager.try_include()
- Python 3.10 support (#64)
- Python 3.11 support
- Python 3.12 support
- documentation moved to github pages
- Python 3.6 support
- Python 3.7 support
- inet type
IpNetwork
- collections.abc deprecation warning
- mkdocs no longer a requirement for a normal installation of the package
confu.util.SettingsManager
: scoped settings management with environment variable override support
- version in pyproject.toml
- Python 3.8 support (#33)
- Python 3.9 support (#41)
apply_argparse
: helper function to update Config object with output from parser (#31)argparse_options
:default_from_schema
keyword argument added (#31)- Poetry added for dependency management (#39)
- Python 3.5 support (#32)
- Python 3.4 support
- Python 2.7 support
- Python 3.7 support (#29)
Directory Attribute
:require_exist
argument (#28)File Attribute
:require_exist
argument (#25)
- PyPI package renamed to
confu
Directory Attribute
: expand user and make path absolute during validation (#27)File Attribute
: expand user and make path absolute during validation (#26)
- added missing docs files
argparse_options
:attributes
keyword argument added (#24)click_options
:attributes
keyword argument added (#24)
- use pymdgen for automatic api docs (#22)
Attribute
:cli
argument can now be a function (#21)
- fix #23: better error handling in apply_defaults
defaults
parameter for argparse_options and click_options (#20)
List
still requires name attribute on init (#17)
- Fixed issue where
List
holdingSchema
type items would lose items to validation warnings (#18)
- some attribute validators still have issues with a None default (#16)
- For string attributes a blank default value should infer blank=True (#15)
- IPAddress field validation issue with blank=True (#13)
- Allow None as a default value (#14)
- Auto set attribute name if not specified (#12)
- added
valid
property to Config that will be true if config was validated without - code cleanup
- test coverage to 91%
- updated outdated requirements to prepare for 1.0.0 release
blank
argument forStr
attribute - specifies whether value can be blank or not, defaults toFalse
- proxy schema needs to be able to apply defaults (#10)
- issue where list validation would sometimes lead to duplicate items added to the list
Directory
attribute will forfeit validation ifblank
isTrue
and value is""
- recursive directory creation for Directory Attribute if
create
is specified
apply_defaults
now properly works with nested items
File
attributeEmail
attributeUrl
attributeIpAddress
attributeSchema
attribute now has an optionalitem
argument that if set allows for validation of dicts with arbitrary keys.- Support for ConfigParser instances in validate
- schema moved to directory so it's easier to group and add new attributes going forward, imports remain unaffected.
validate
will now pass **kwargs on toSchema.validate
- Facsimile to Ctl
ProxySchema
apply_defaults
to apply schema defaults to a config dictConfig
object
Schema.walk
now triggers the callback before entering subschemas
- Schema now extends Attribute and is now working on instances rather than classmethod based
- Attribute name is now optional when attribute is member of list
- renamed
ListAttribute
toList
- renamed
StringAttribute
toStr
- renamed
IntAttribute
toInt
- renamed
FloatAttribute
toFloat
- renamed
BooleanAttribute
toBool
- renamed
DirectoryAttribute
toDirectory
- py2.7 support
- DirectoryAttribute
- generator.generate shortcut
- validation: schema validation returning None value
- validation: warnings raised with the wrong exception type
- exceptions: can now have integers in config path (from list index for example)
- renamed
UnicodeAttribute
toStringAttribute
that is now looking for either string or unicode types during validation