
Security News
MCP Community Begins Work on Official MCP Metaregistry
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
horae.groupselect
provides a grouped Dropdown
widget for
zope.formlib <http://pypi.python.org/pypi/zope.formlib>
_ using
the default optgroup
elements provided by HTML.
To use a grouped dropdown widget the previously used Choice
field
of the schema has to be replaced by a GroupedChoice
field provided
in horae.groupedselect.field
. A GroupedChoice
field takes the
exactly same parameters as the stock Choice
field but additionally
an instance of a groups provider (implementing
horae.groupedselect.interfaces.IGroups
) has to be provided over the
parameter groups
. The mentioned groups provider converts the
vocabulary of the field into a list of groups.
Imagine field to select a country and you would like to group them by region::
from zope import interface, implements
from zope.schema import vocabulary
from horae.groupedselect import field, interfaces
class Country(object):
def __init__(self, region, country):
self.region = region
self.country = country
class CountryGroups(object):
implements(interfaces.IGroups)
def groups(self, vocabulary):
"""
Converts the given vocabulary into a list of groups:
return (('Group 1', (term1, term2, term3)),
('Group 2', (term6, term5, term6)),)
"""
groups = {}
for term in vocabulary:
if not term.value.region in groups:
groups[term.value.region] = ()
groups[term.value.region] = groups[term.value.region] + \
(term,)
return groups.items()
class ICountrySelection(interface.Interface):
country = field.GroupedChoice(
title = u'Country',
vocabulary = vocabulary.SimpleVocabulary((
# ...
vocabulary.SimpleTerm(
Country(u'Europe', u'Switzerland'),
'ch',
u'Switzerland'
),
vocabulary.SimpleTerm(
Country(u'Europe', u'Germany'),
'de',
u'Germany'
),
vocabulary.SimpleTerm(
Country(u'Europe', u'Austria'),
'at',
u'Austria'
),
vocabulary.SimpleTerm(
Country(u'Europe', u'France'),
'fr',
u'France'
),
# ...
vocabulary.SimpleTerm(
Country(u'North America', u'USA'),
'us',
u'USA'
),
vocabulary.SimpleTerm(
Country(u'Europe', u'Canada'),
'ca',
u'Canada'
),
# ...
)),
groups = CountryGroups()
)
zope.schema <http://pypi.python.org/pypi/zope.schema>
_zope.formlib <http://pypi.python.org/pypi/zope.formlib>
_FAQs
Provides a grouped Dropdown widget for zope.formlib
We found that horae.groupselect demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.
Research
Security News
Malicious npm packages posing as developer tools target macOS Cursor IDE users, stealing credentials and modifying files to gain persistent backdoor access.