Package: yota
YotaDocumentation|Example Repository|DemoYota is a Python form generation library with the following unique features:Easy integration of realtime validation. Trigger a server side form
validation with any JavaScript event on your input fields. (Client side in
planning)Dynamic form structures allow for complex forms with on the fly changes.
Inject different input fields or validation methods into a specific instance
of your Form where needed.Default themed with Bootstrap, allowing you to quickly throw together useful
forms that look nice.In addition to these features, Yota also includes most of the features that
you would see with other form libraries.Simple declarative syntax for defining form validation and layoutCustomizable template driven schemasAbility to operate with almost any framework and use any rendering engine.
(Default is jinja2)Philosophically Yota aims to have a ton of power, since designing Forms can
require a lot of flexibility. This was the main problem the designers had with
other libraries is that they ended up getting in the way. At the same time
however it is important that sensible default be easy to use and implement,
making the creation of common forms trivial and lowering the inital learning
curve.Note: Release of 0.2 has made changes that will minorly break reverse compatibility. This should be the last time as this code base is maturing, but be cautious if upgrading any production code to the latest release.Breaking Changes Are:Validation methods now return a tuple containing (1) Success value (2)
Data (Json or rendered form).Semantics with which Nodes interact with piecewise validation have changed
with the re-write, but this only effects people writing custom Nodes.Get InvolvedAny and all contributions to Yota are gladly welcomed. Simply fork the
repository and make a pull request with your addition or open an issue for the
maintainers to consider. Please include 100% test coverage with all pull
requests. If you’re looking to help out, there are several tickets tagged with
“maintinance” that should be easy starting point. Adding yourself to the
CONTRIBUTORS.txt list when making a pull request is also encouraged.Latest Changes0.2.2 (2013-08-22)FeaturesAdded post-success JavaScript hooks for common actions as well as custom JSShorthand validation is now allowed for dynamically inserted nodesAdded Python 3.3 supportImplemented a ‘validator’ method for Form that allows one-off validation for
validation logic that is specific to that form onlyAdded new ‘render_success’ and ‘error_success’ attributes for Form to specify
a JavaScript function to replace the default callback in the JS apicss_style, disable, and css_class are now Node attributes that can be used in
templatesAdded a new FileNode for uploading files with along with a MimeTypeValidator
and associated template modificationsBug FixesDocumentation fixesSetting title=False didn’t function correctlySome class attribute override semantics didn’t function as intended and have
now been resolvedFixed a unicode encoding error identified by xen that was breaking validationMaintenance/StabilityMoved some functionality out of the metaclass to be more lazy, increasing the
initialization speed of classes and improving testingWrote many additional tests and significantly improved assertion coverageCompletely re-organized tests to be organized less haphazzardly and updated
/extended their comments significantly.Setup coveralls and Travis CIGave the whole codebase a PyLint and PEP8 passInstallationYota has no dependencies on other libraries or packages except for its rendering engine. To install Yota just do:pip install yota jinja2Or you can install it from Git with:git clonehttps://github.com/icook/yota.gitcd yotapip install .pip install jinja2LicenseYota is under the new-style BSD license.