diff --git a/CHANGES.rst b/CHANGES.rst
index a861314..01773e1 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -2,10 +2,13 @@
  Changes
 =========
 
-4.8.1 (unreleased)
+4.9.0 (unreleased)
 ==================
 
-- Nothing changed yet.
+- Make ``NativeString`` and ``NativeStringLine`` distinct types that
+  implement the newly-distinct interfaces ``INativeString`` and
+  ``INativeStringLine``. Previously these were just aliases for either
+  ``Text`` (on Python 3) or ``Bytes`` (on Python 2).
 
 
 4.8.0 (2018-09-19)
diff --git a/docs/api.rst b/docs/api.rst
index 9344e44..bea7c69 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -37,6 +37,8 @@ Strings
 .. autointerface:: zope.schema.interfaces.ITextLine
 .. autointerface:: zope.schema.interfaces.IASCII
 .. autointerface:: zope.schema.interfaces.IASCIILine
+.. autointerface:: zope.schema.interfaces.INativeString
+.. autointerface:: zope.schema.interfaces.INativeStringLine
 
 .. autointerface:: zope.schema.interfaces.IPassword
 .. autointerface:: zope.schema.interfaces.IURI
@@ -199,8 +201,6 @@ Field Implementations
 .. autoclass:: zope.schema.MutableMapping
 .. autoclass:: zope.schema.MutableSequence
 .. autoclass:: zope.schema.MinMaxLen
-.. autoclass:: zope.schema.NativeString
-.. autoclass:: zope.schema.NativeStringLine
 .. autoclass:: zope.schema.Object
    :no-show-inheritance:
 .. autoclass:: zope.schema.Orderable
@@ -232,6 +232,10 @@ Strings
    :no-show-inheritance:
 .. autoclass:: zope.schema.TextLine
    :no-show-inheritance:
+.. autoclass:: zope.schema.NativeString
+   :no-show-inheritance:
+.. autoclass:: zope.schema.NativeStringLine
+   :no-show-inheritance:
 
 Numbers
 -------
diff --git a/src/zope/schema/_field.py b/src/zope/schema/_field.py
index 1414b47..0444656 100644
--- a/src/zope/schema/_field.py
+++ b/src/zope/schema/_field.py
@@ -65,6 +65,8 @@ from zope.schema.interfaces import IMinMaxLen
 from zope.schema.interfaces import IMapping
 from zope.schema.interfaces import IMutableMapping
 from zope.schema.interfaces import IMutableSequence
+from zope.schema.interfaces import INativeString
+from zope.schema.interfaces import INativeStringLine
 from zope.schema.interfaces import IObject
 from zope.schema.interfaces import INumber
 from zope.schema.interfaces import IPassword
@@ -170,11 +172,27 @@ class Bytes(MinMaxLen, Field):
         self.validate(value)
         return value
 
-# for things which are of the str type on both Python 2 and 3
-if PY3:  # pragma: no cover
-    NativeString = Text
-else:  # pragma: no cover
-    NativeString = Bytes
+
+@implementer(INativeString, IFromUnicode, IFromBytes)
+class NativeString(Text if PY3 else Bytes):
+    """
+    A native string is always the type `str`.
+
+    In addition to :class:`~zope.schema.interfaces.INativeString`,
+    this implements :class:`~zope.schema.interfaces.IFromUnicode` and
+    :class:`~zope.schema.interfaces.IFromBytes`.
+
+    .. versionchanged:: 4.9.0
+       This is now a distinct type instead of an alias for either `Text` or `Bytes`,
+       depending on the platform.
+    """
+    _type = str
+
+    if PY3:
+        def fromBytes(self, value):
+            value = value.decode('utf-8')
+            self.validate(value)
+            return value
 
 
 @implementer(IASCII)
@@ -191,17 +209,34 @@ class ASCII(NativeString):
 
 @implementer(IBytesLine)
 class BytesLine(Bytes):
-    """A Text field with no newlines."""
+    """A `Bytes` field with no newlines."""
 
     def constraint(self, value):
         # TODO: we should probably use a more general definition of newlines
         return b'\n' not in value
 
-# for things which are of the str type on both Python 2 and 3
-if PY3:  # pragma: no cover
-    NativeStringLine = TextLine
-else:  # pragma: no cover
-    NativeStringLine = BytesLine
+
+@implementer(INativeStringLine, IFromUnicode, IFromBytes)
+class NativeStringLine(TextLine if PY3 else BytesLine):
+    """
+    A native string is always the type `str`; this field excludes
+    newlines.
+
+    In addition to :class:`~zope.schema.interfaces.INativeStringLine`,
+    this implements :class:`~zope.schema.interfaces.IFromUnicode` and
+    :class:`~zope.schema.interfaces.IFromBytes`.
+
+    .. versionchanged:: 4.9.0
+       This is now a distinct type instead of an alias for either `TextLine`
+       or `BytesLine`, depending on the platform.
+    """
+    _type = str
+
+    if PY3:
+        def fromBytes(self, value):
+            value = value.decode('utf-8')
+            self.validate(value)
+            return value
 
 
 @implementer(IASCIILine)
diff --git a/src/zope/schema/interfaces.py b/src/zope/schema/interfaces.py
index c0ac93b..c6c7aea 100644
--- a/src/zope/schema/interfaces.py
+++ b/src/zope/schema/interfaces.py
@@ -416,10 +416,14 @@ class IText(IMinMaxLen, IIterable, IField):
 
 
 # for things which are of the str type on both Python 2 and 3
-if PY3:  # pragma: no cover
-    INativeString = IText
-else:  # pragma: no cover
-    INativeString = IBytes
+class INativeString(IText if PY3 else IBytes):
+    """
+    A field that always contains the native `str` type.
+
+    .. versionchanged:: 4.9.0
+       This is now a distinct type instead of an alias for either `IText`
+       or `IBytes`, depending on the platform.
+    """
 
 
 class IASCII(INativeString):
@@ -446,10 +450,14 @@ class ITextLine(IText):
     """Field containing a unicode string without newlines."""
 
 
-if PY3:  # pragma: no cover
-    INativeStringLine = ITextLine
-else:  # pragma: no cover
-    INativeStringLine = IBytesLine
+class INativeStringLine(ITextLine if PY3 else IBytesLine):
+    """
+    A field that always contains the native `str` type, without any newlines.
+
+    .. versionchanged:: 4.9.0
+       This is now a distinct type instead of an alias for either `ITextLine`
+       or `IBytesLine`, depending on the platform.
+    """
 
 
 class IPassword(ITextLine):
diff --git a/version.txt b/version.txt
index 40aa077..4cc29d9 100644
--- a/version.txt
+++ b/version.txt
@@ -1,1 +1,1 @@
-4.8.1.dev0
+4.9.0.dev0

Make NativeString[Line] a distinct type
Especially now that we document the implementation class of fields, having NativeString[Line] be simple aliases of either Bytes or Text[Line] is confusing and misleading, because what you see in the documentation is Bytes or Text, but that's not what you need to put in source code.

The idea would be to do something like 
```python
class NativeString(Text if PY3 else Bytes):
    """The native `str` type"""
```

We'd probably also want a `INativeString` interface...

I noticed the confusing documentation in zope.configuration.

diff --git a/src/zope/schema/tests/test__field.py b/src/zope/schema/tests/test__field.py
index 0eb02ff..4f99d69 100644
--- a/src/zope/schema/tests/test__field.py
+++ b/src/zope/schema/tests/test__field.py
@@ -1702,6 +1702,63 @@ class DictTests(MutableMappingTests):
         with self.assertRaises(WrongType):
             super(DictTests, self).test_mutable_mapping()
 
+class NativeStringTests(EqualityTestsMixin,
+                        WrongTypeTestsMixin,
+                        unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import NativeString
+        return NativeString
+
+    def _getTargetInterface(self):
+        from zope.schema.interfaces import INativeString
+        return INativeString
+
+    def _getTargetInterfaces(self):
+        from zope.schema.interfaces import IFromUnicode
+        from zope.schema.interfaces import IFromBytes
+        return [self._getTargetInterface(), IFromUnicode, IFromBytes]
+
+    def test_fromBytes(self):
+        field = self._makeOne()
+        self.assertEqual(field.fromBytes(b''), '')
+        self.assertEqual(field.fromBytes(b'DEADBEEF'), 'DEADBEEF')
+
+    def test_fromUnicode(self):
+        field = self._makeOne()
+        self.assertIsInstance(field.fromUnicode(u''), str)
+        self.assertEqual(field.fromUnicode(u''), '')
+        self.assertEqual(field.fromUnicode(u'DEADBEEF'), 'DEADBEEF')
+
+
+class NativeStringLineTests(EqualityTestsMixin,
+                            WrongTypeTestsMixin,
+                            unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import NativeStringLine
+        return NativeStringLine
+
+    def _getTargetInterface(self):
+        from zope.schema.interfaces import INativeStringLine
+        return INativeStringLine
+
+    def _getTargetInterfaces(self):
+        from zope.schema.interfaces import IFromUnicode
+        from zope.schema.interfaces import IFromBytes
+        return [self._getTargetInterface(), IFromUnicode, IFromBytes]
+
+    def test_fromBytes(self):
+        field = self._makeOne()
+        self.assertEqual(field.fromBytes(b''), '')
+        self.assertEqual(field.fromBytes(b'DEADBEEF'), 'DEADBEEF')
+
+    def test_fromUnicode(self):
+        field = self._makeOne()
+        self.assertIsInstance(field.fromUnicode(u''), str)
+        self.assertEqual(field.fromUnicode(u''), '')
+        self.assertEqual(field.fromUnicode(u'DEADBEEF'), 'DEADBEEF')
+
 
 def _makeSampleVocabulary():
     from zope.interface import implementer

pip install -e .[test]
parse_log_pytest
requirements.txt
pytest coverage sphinx
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
babel==2.17.0
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.8.0
docutils==0.21.2
exceptiongroup==1.2.2
idna==3.10
imagesize==1.4.1
importlib_metadata==8.6.1
iniconfig==2.1.0
Jinja2==3.1.6
MarkupSafe==3.0.2
packaging==24.2
pluggy==1.5.0
Pygments==2.19.1
pytest==8.3.5
requests==2.32.3
snowballstemmer==2.2.0
Sphinx==7.4.7
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
tomli==2.2.1
urllib3==2.3.0
zipp==3.21.0
zope.event==5.0
zope.exceptions==5.2
zope.i18nmessageid==7.0
zope.interface==7.2
-e git+https://github.com/zopefoundation/zope.schema.git@d78c57c3c9ab8608fda1c1213c64d1666db770e2#egg=zope.schema
zope.testing==5.1
zope.testrunner==7.2

name: zope.schema
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.16
      - babel==2.17.0
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - docutils==0.21.2
      - exceptiongroup==1.2.2
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - jinja2==3.1.6
      - markupsafe==3.0.2
      - packaging==24.2
      - pluggy==1.5.0
      - pygments==2.19.1
      - pytest==8.3.5
      - requests==2.32.3
      - snowballstemmer==2.2.0
      - sphinx==7.4.7
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - tomli==2.2.1
      - urllib3==2.3.0
      - zipp==3.21.0
      - zope-event==5.0
      - zope-exceptions==5.2
      - zope-i18nmessageid==7.0
      - zope-interface==7.2
      - zope-testing==5.1
      - zope-testrunner==7.2
prefix: /opt/conda/envs/zope.schema

src/zope/schema/tests/test__field.py::NativeStringTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::NativeStringTests::test_fromBytes src/zope/schema/tests/test__field.py::NativeStringTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::NativeStringLineTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::NativeStringLineTests::test_fromBytes src/zope/schema/tests/test__field.py::NativeStringLineTests::test_instance_conforms_to_iface
src/zope/schema/tests/test__field.py::NumberTests::test___eq___different_type src/zope/schema/tests/test__field.py::NumberTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::NumberTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::NumberTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::NumberTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::NumberTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::NumberTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::NumberTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::NumberTests::test_is_hashable src/zope/schema/tests/test__field.py::NumberTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::NumberTests::test_validate_max src/zope/schema/tests/test__field.py::NumberTests::test_validate_min src/zope/schema/tests/test__field.py::NumberTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::BytesTests::test___eq___different_type src/zope/schema/tests/test__field.py::BytesTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::BytesTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::BytesTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::BytesTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::BytesTests::test_fromBytes src/zope/schema/tests/test__field.py::BytesTests::test_fromUnicode_hit src/zope/schema/tests/test__field.py::BytesTests::test_fromUnicode_miss src/zope/schema/tests/test__field.py::BytesTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::BytesTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::BytesTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::BytesTests::test_is_hashable src/zope/schema/tests/test__field.py::BytesTests::test_validate_not_required src/zope/schema/tests/test__field.py::BytesTests::test_validate_required src/zope/schema/tests/test__field.py::BytesTests::test_validate_w_invalid_default src/zope/schema/tests/test__field.py::BytesTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::ASCIITests::test___eq___different_type src/zope/schema/tests/test__field.py::ASCIITests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::ASCIITests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::ASCIITests::test__validate_empty src/zope/schema/tests/test__field.py::ASCIITests::test__validate_non_empty_hit src/zope/schema/tests/test__field.py::ASCIITests::test__validate_non_empty_miss src/zope/schema/tests/test__field.py::ASCIITests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::ASCIITests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::ASCIITests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::ASCIITests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::ASCIITests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::ASCIITests::test_is_hashable src/zope/schema/tests/test__field.py::ASCIITests::test_validate_wrong_types src/zope/schema/tests/test__field.py::BytesLineTests::test___eq___different_type src/zope/schema/tests/test__field.py::BytesLineTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::BytesLineTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::BytesLineTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::BytesLineTests::test_constraint src/zope/schema/tests/test__field.py::BytesLineTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::BytesLineTests::test_fromBytes src/zope/schema/tests/test__field.py::BytesLineTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::BytesLineTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::BytesLineTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::BytesLineTests::test_is_hashable src/zope/schema/tests/test__field.py::BytesLineTests::test_validate_not_required src/zope/schema/tests/test__field.py::BytesLineTests::test_validate_required src/zope/schema/tests/test__field.py::BytesLineTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::ASCIILineTests::test___eq___different_type src/zope/schema/tests/test__field.py::ASCIILineTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::ASCIILineTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::ASCIILineTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::ASCIILineTests::test_constraint src/zope/schema/tests/test__field.py::ASCIILineTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::ASCIILineTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::ASCIILineTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::ASCIILineTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::ASCIILineTests::test_is_hashable src/zope/schema/tests/test__field.py::ASCIILineTests::test_validate_not_required src/zope/schema/tests/test__field.py::ASCIILineTests::test_validate_required src/zope/schema/tests/test__field.py::ASCIILineTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::FloatTests::test___eq___different_type src/zope/schema/tests/test__field.py::FloatTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::FloatTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::FloatTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::FloatTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::FloatTests::test_fromUnicode_hit src/zope/schema/tests/test__field.py::FloatTests::test_fromUnicode_miss src/zope/schema/tests/test__field.py::FloatTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::FloatTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::FloatTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::FloatTests::test_is_hashable src/zope/schema/tests/test__field.py::FloatTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::FloatTests::test_validate_max src/zope/schema/tests/test__field.py::FloatTests::test_validate_min src/zope/schema/tests/test__field.py::FloatTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::FloatTests::test_validate_not_required src/zope/schema/tests/test__field.py::FloatTests::test_validate_required src/zope/schema/tests/test__field.py::DecimalTests::test___eq___different_type src/zope/schema/tests/test__field.py::DecimalTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::DecimalTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::DecimalTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::DecimalTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::DecimalTests::test_fromUnicode_hit src/zope/schema/tests/test__field.py::DecimalTests::test_fromUnicode_miss src/zope/schema/tests/test__field.py::DecimalTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::DecimalTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::DecimalTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::DecimalTests::test_is_hashable src/zope/schema/tests/test__field.py::DecimalTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::DecimalTests::test_validate_max src/zope/schema/tests/test__field.py::DecimalTests::test_validate_min src/zope/schema/tests/test__field.py::DecimalTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::DecimalTests::test_validate_not_required src/zope/schema/tests/test__field.py::DecimalTests::test_validate_required src/zope/schema/tests/test__field.py::DatetimeTests::test___eq___different_type src/zope/schema/tests/test__field.py::DatetimeTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::DatetimeTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::DatetimeTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::DatetimeTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::DatetimeTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::DatetimeTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::DatetimeTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::DatetimeTests::test_is_hashable src/zope/schema/tests/test__field.py::DatetimeTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_max src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_min src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_not_required src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_required src/zope/schema/tests/test__field.py::DatetimeTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::DateTests::test___eq___different_type src/zope/schema/tests/test__field.py::DateTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::DateTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::DateTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::DateTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::DateTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::DateTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::DateTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::DateTests::test_is_hashable src/zope/schema/tests/test__field.py::DateTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::DateTests::test_validate_max src/zope/schema/tests/test__field.py::DateTests::test_validate_min src/zope/schema/tests/test__field.py::DateTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::DateTests::test_validate_not_required src/zope/schema/tests/test__field.py::DateTests::test_validate_required src/zope/schema/tests/test__field.py::DateTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::TimedeltaTests::test___eq___different_type src/zope/schema/tests/test__field.py::TimedeltaTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::TimedeltaTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::TimedeltaTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::TimedeltaTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::TimedeltaTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::TimedeltaTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::TimedeltaTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::TimedeltaTests::test_is_hashable src/zope/schema/tests/test__field.py::TimedeltaTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::TimedeltaTests::test_validate_max src/zope/schema/tests/test__field.py::TimedeltaTests::test_validate_min src/zope/schema/tests/test__field.py::TimedeltaTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::TimedeltaTests::test_validate_not_required src/zope/schema/tests/test__field.py::TimedeltaTests::test_validate_required src/zope/schema/tests/test__field.py::TimeTests::test___eq___different_type src/zope/schema/tests/test__field.py::TimeTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::TimeTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::TimeTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::TimeTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::TimeTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::TimeTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::TimeTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::TimeTests::test_is_hashable src/zope/schema/tests/test__field.py::TimeTests::test_missing_value_no_min_or_max src/zope/schema/tests/test__field.py::TimeTests::test_validate_max src/zope/schema/tests/test__field.py::TimeTests::test_validate_min src/zope/schema/tests/test__field.py::TimeTests::test_validate_min_and_max src/zope/schema/tests/test__field.py::TimeTests::test_validate_not_required src/zope/schema/tests/test__field.py::TimeTests::test_validate_required src/zope/schema/tests/test__field.py::ChoiceTests::test___eq___different_type src/zope/schema/tests/test__field.py::ChoiceTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::ChoiceTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_int src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_mixed src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_source_is_ICSB_bound src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_source_is_ICSB_unbound src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_string src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_tuple src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_w_named_vocabulary src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_w_named_vocabulary_invalid src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_w_named_vocabulary_passes_context src/zope/schema/tests/test__field.py::ChoiceTests::test__validate_w_named_vocabulary_raises_LookupError src/zope/schema/tests/test__field.py::ChoiceTests::test_bind_w_preconstructed_vocabulary src/zope/schema/tests/test__field.py::ChoiceTests::test_bind_w_voc_is_ICSB src/zope/schema/tests/test__field.py::ChoiceTests::test_bind_w_voc_is_ICSB_but_not_ISource src/zope/schema/tests/test__field.py::ChoiceTests::test_bind_w_voc_not_ICSB src/zope/schema/tests/test__field.py::ChoiceTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_both_vocabulary_and_source src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_both_vocabulary_and_values src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_invalid_source src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_invalid_vocabulary src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_w_named_vocabulary src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_w_preconstructed_vocabulary src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_w_unicode_non_ascii_values src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_w_values src/zope/schema/tests/test__field.py::ChoiceTests::test_ctor_wo_values_vocabulary_or_source src/zope/schema/tests/test__field.py::ChoiceTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::ChoiceTests::test_fromUnicode_hit src/zope/schema/tests/test__field.py::ChoiceTests::test_fromUnicode_miss src/zope/schema/tests/test__field.py::ChoiceTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::ChoiceTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::ChoiceTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::ChoiceTests::test_is_hashable src/zope/schema/tests/test__field.py::URITests::test___eq___different_type src/zope/schema/tests/test__field.py::URITests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::URITests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::URITests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::URITests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::URITests::test_fromUnicode_invalid src/zope/schema/tests/test__field.py::URITests::test_fromUnicode_ok src/zope/schema/tests/test__field.py::URITests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::URITests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::URITests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::URITests::test_is_hashable src/zope/schema/tests/test__field.py::URITests::test_validate_not_a_uri src/zope/schema/tests/test__field.py::URITests::test_validate_not_required src/zope/schema/tests/test__field.py::URITests::test_validate_required src/zope/schema/tests/test__field.py::URITests::test_validate_wrong_types src/zope/schema/tests/test__field.py::DottedNameTests::test___eq___different_type src/zope/schema/tests/test__field.py::DottedNameTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::DottedNameTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::DottedNameTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::DottedNameTests::test_ctor_defaults src/zope/schema/tests/test__field.py::DottedNameTests::test_ctor_max_dots_invalid src/zope/schema/tests/test__field.py::DottedNameTests::test_ctor_max_dots_valid src/zope/schema/tests/test__field.py::DottedNameTests::test_ctor_min_dots_invalid src/zope/schema/tests/test__field.py::DottedNameTests::test_ctor_min_dots_valid src/zope/schema/tests/test__field.py::DottedNameTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::DottedNameTests::test_fromUnicode_dotted_name_ok src/zope/schema/tests/test__field.py::DottedNameTests::test_fromUnicode_invalid src/zope/schema/tests/test__field.py::DottedNameTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::DottedNameTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::DottedNameTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::DottedNameTests::test_is_hashable src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_not_a_dotted_name src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_not_required src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_required src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_w_max_dots src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_w_min_dots src/zope/schema/tests/test__field.py::DottedNameTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::IdTests::test___eq___different_type src/zope/schema/tests/test__field.py::IdTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::IdTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::IdTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::IdTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::IdTests::test_fromUnicode_dotted_name_ok src/zope/schema/tests/test__field.py::IdTests::test_fromUnicode_invalid src/zope/schema/tests/test__field.py::IdTests::test_fromUnicode_url_ok src/zope/schema/tests/test__field.py::IdTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::IdTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::IdTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::IdTests::test_is_hashable src/zope/schema/tests/test__field.py::IdTests::test_validate_not_a_uri src/zope/schema/tests/test__field.py::IdTests::test_validate_not_required src/zope/schema/tests/test__field.py::IdTests::test_validate_required src/zope/schema/tests/test__field.py::IdTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::InterfaceFieldTests::test___eq___different_type src/zope/schema/tests/test__field.py::InterfaceFieldTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::InterfaceFieldTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_is_hashable src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_validate_not_required src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_validate_required src/zope/schema/tests/test__field.py::InterfaceFieldTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::CollectionTests::test___eq___different_type src/zope/schema/tests/test__field.py::CollectionTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::CollectionTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::CollectionTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::CollectionTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::CollectionTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::CollectionTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::CollectionTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::CollectionTests::test_ctor_defaults src/zope/schema/tests/test__field.py::CollectionTests::test_ctor_explicit src/zope/schema/tests/test__field.py::CollectionTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::CollectionTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::CollectionTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::CollectionTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::CollectionTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::CollectionTests::test_is_hashable src/zope/schema/tests/test__field.py::CollectionTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::CollectionTests::test_validate_max_length src/zope/schema/tests/test__field.py::CollectionTests::test_validate_min_length src/zope/schema/tests/test__field.py::CollectionTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::CollectionTests::test_validate_not_required src/zope/schema/tests/test__field.py::CollectionTests::test_validate_required src/zope/schema/tests/test__field.py::SequenceTests::test___eq___different_type src/zope/schema/tests/test__field.py::SequenceTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::SequenceTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::SequenceTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::SequenceTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::SequenceTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::SequenceTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::SequenceTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::SequenceTests::test_ctor_defaults src/zope/schema/tests/test__field.py::SequenceTests::test_ctor_explicit src/zope/schema/tests/test__field.py::SequenceTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::SequenceTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::SequenceTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::SequenceTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::SequenceTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::SequenceTests::test_is_hashable src/zope/schema/tests/test__field.py::SequenceTests::test_mutable_sequence src/zope/schema/tests/test__field.py::SequenceTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::SequenceTests::test_sequence src/zope/schema/tests/test__field.py::SequenceTests::test_validate_max_length src/zope/schema/tests/test__field.py::SequenceTests::test_validate_min_length src/zope/schema/tests/test__field.py::SequenceTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::SequenceTests::test_validate_not_required src/zope/schema/tests/test__field.py::SequenceTests::test_validate_required src/zope/schema/tests/test__field.py::SequenceTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::TupleTests::test___eq___different_type src/zope/schema/tests/test__field.py::TupleTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::TupleTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::TupleTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::TupleTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::TupleTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::TupleTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::TupleTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::TupleTests::test_ctor_defaults src/zope/schema/tests/test__field.py::TupleTests::test_ctor_explicit src/zope/schema/tests/test__field.py::TupleTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::TupleTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::TupleTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::TupleTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::TupleTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::TupleTests::test_is_hashable src/zope/schema/tests/test__field.py::TupleTests::test_mutable_sequence src/zope/schema/tests/test__field.py::TupleTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::TupleTests::test_sequence src/zope/schema/tests/test__field.py::TupleTests::test_validate_max_length src/zope/schema/tests/test__field.py::TupleTests::test_validate_min_length src/zope/schema/tests/test__field.py::TupleTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::TupleTests::test_validate_not_required src/zope/schema/tests/test__field.py::TupleTests::test_validate_required src/zope/schema/tests/test__field.py::TupleTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::MutableSequenceTests::test___eq___different_type src/zope/schema/tests/test__field.py::MutableSequenceTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::MutableSequenceTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::MutableSequenceTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::MutableSequenceTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::MutableSequenceTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::MutableSequenceTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::MutableSequenceTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::MutableSequenceTests::test_ctor_defaults src/zope/schema/tests/test__field.py::MutableSequenceTests::test_ctor_explicit src/zope/schema/tests/test__field.py::MutableSequenceTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::MutableSequenceTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::MutableSequenceTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::MutableSequenceTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::MutableSequenceTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::MutableSequenceTests::test_is_hashable src/zope/schema/tests/test__field.py::MutableSequenceTests::test_mutable_sequence src/zope/schema/tests/test__field.py::MutableSequenceTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::MutableSequenceTests::test_sequence src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_max_length src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_min_length src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_not_required src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_required src/zope/schema/tests/test__field.py::MutableSequenceTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::ListTests::test___eq___different_type src/zope/schema/tests/test__field.py::ListTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::ListTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::ListTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::ListTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::ListTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::ListTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::ListTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::ListTests::test_ctor_defaults src/zope/schema/tests/test__field.py::ListTests::test_ctor_explicit src/zope/schema/tests/test__field.py::ListTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::ListTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::ListTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::ListTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::ListTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::ListTests::test_is_hashable src/zope/schema/tests/test__field.py::ListTests::test_mutable_sequence src/zope/schema/tests/test__field.py::ListTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::ListTests::test_sequence src/zope/schema/tests/test__field.py::ListTests::test_validate_max_length src/zope/schema/tests/test__field.py::ListTests::test_validate_min_length src/zope/schema/tests/test__field.py::ListTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::ListTests::test_validate_not_required src/zope/schema/tests/test__field.py::ListTests::test_validate_required src/zope/schema/tests/test__field.py::ListTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::SetTests::test___eq___different_type src/zope/schema/tests/test__field.py::SetTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::SetTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::SetTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::SetTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::SetTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::SetTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::SetTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::SetTests::test_ctor_defaults src/zope/schema/tests/test__field.py::SetTests::test_ctor_disallows_unique src/zope/schema/tests/test__field.py::SetTests::test_ctor_explicit src/zope/schema/tests/test__field.py::SetTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::SetTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::SetTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::SetTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::SetTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::SetTests::test_is_hashable src/zope/schema/tests/test__field.py::SetTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::SetTests::test_validate_max_length src/zope/schema/tests/test__field.py::SetTests::test_validate_min_length src/zope/schema/tests/test__field.py::SetTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::SetTests::test_validate_not_required src/zope/schema/tests/test__field.py::SetTests::test_validate_required src/zope/schema/tests/test__field.py::SetTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::FrozenSetTests::test___eq___different_type src/zope/schema/tests/test__field.py::FrozenSetTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::FrozenSetTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::FrozenSetTests::test__validate_miss_uniqueness src/zope/schema/tests/test__field.py::FrozenSetTests::test__validate_wrong_contained_type src/zope/schema/tests/test__field.py::FrozenSetTests::test_bind_w_value_Type src/zope/schema/tests/test__field.py::FrozenSetTests::test_bind_wo_value_Type src/zope/schema/tests/test__field.py::FrozenSetTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::FrozenSetTests::test_ctor_defaults src/zope/schema/tests/test__field.py::FrozenSetTests::test_ctor_disallows_unique src/zope/schema/tests/test__field.py::FrozenSetTests::test_ctor_explicit src/zope/schema/tests/test__field.py::FrozenSetTests::test_ctor_w_non_field_value_type src/zope/schema/tests/test__field.py::FrozenSetTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::FrozenSetTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::FrozenSetTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::FrozenSetTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::FrozenSetTests::test_is_hashable src/zope/schema/tests/test__field.py::FrozenSetTests::test_schema_defined_by_subclass src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_max_length src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_min_length src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_not_required src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_required src/zope/schema/tests/test__field.py::FrozenSetTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::MappingTests::test___eq___different_type src/zope/schema/tests/test__field.py::MappingTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::MappingTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::MappingTests::test_bind_binds_key_and_value_types src/zope/schema/tests/test__field.py::MappingTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::MappingTests::test_ctor_key_type_not_IField src/zope/schema/tests/test__field.py::MappingTests::test_ctor_value_type_not_IField src/zope/schema/tests/test__field.py::MappingTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::MappingTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::MappingTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::MappingTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::MappingTests::test_is_hashable src/zope/schema/tests/test__field.py::MappingTests::test_mapping src/zope/schema/tests/test__field.py::MappingTests::test_mutable_mapping src/zope/schema/tests/test__field.py::MappingTests::test_validate_invalid_key_type src/zope/schema/tests/test__field.py::MappingTests::test_validate_invalid_value_type src/zope/schema/tests/test__field.py::MappingTests::test_validate_max_length src/zope/schema/tests/test__field.py::MappingTests::test_validate_min_length src/zope/schema/tests/test__field.py::MappingTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::MappingTests::test_validate_not_required src/zope/schema/tests/test__field.py::MappingTests::test_validate_required src/zope/schema/tests/test__field.py::MappingTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::MutableMappingTests::test___eq___different_type src/zope/schema/tests/test__field.py::MutableMappingTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::MutableMappingTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::MutableMappingTests::test_bind_binds_key_and_value_types src/zope/schema/tests/test__field.py::MutableMappingTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::MutableMappingTests::test_ctor_key_type_not_IField src/zope/schema/tests/test__field.py::MutableMappingTests::test_ctor_value_type_not_IField src/zope/schema/tests/test__field.py::MutableMappingTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::MutableMappingTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::MutableMappingTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::MutableMappingTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::MutableMappingTests::test_is_hashable src/zope/schema/tests/test__field.py::MutableMappingTests::test_mapping src/zope/schema/tests/test__field.py::MutableMappingTests::test_mutable_mapping src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_invalid_key_type src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_invalid_value_type src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_max_length src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_min_length src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_not_required src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_required src/zope/schema/tests/test__field.py::MutableMappingTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::DictTests::test___eq___different_type src/zope/schema/tests/test__field.py::DictTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::DictTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::DictTests::test_bind_binds_key_and_value_types src/zope/schema/tests/test__field.py::DictTests::test_class_conforms_to_iface src/zope/schema/tests/test__field.py::DictTests::test_ctor_key_type_not_IField src/zope/schema/tests/test__field.py::DictTests::test_ctor_value_type_not_IField src/zope/schema/tests/test__field.py::DictTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::DictTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::DictTests::test_instance_conforms_to_iface src/zope/schema/tests/test__field.py::DictTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::DictTests::test_is_hashable src/zope/schema/tests/test__field.py::DictTests::test_mapping src/zope/schema/tests/test__field.py::DictTests::test_mutable_mapping src/zope/schema/tests/test__field.py::DictTests::test_validate_invalid_key_type src/zope/schema/tests/test__field.py::DictTests::test_validate_invalid_value_type src/zope/schema/tests/test__field.py::DictTests::test_validate_max_length src/zope/schema/tests/test__field.py::DictTests::test_validate_min_length src/zope/schema/tests/test__field.py::DictTests::test_validate_min_length_and_max_length src/zope/schema/tests/test__field.py::DictTests::test_validate_not_required src/zope/schema/tests/test__field.py::DictTests::test_validate_required src/zope/schema/tests/test__field.py::DictTests::test_validate_wrong_types src/zope/schema/tests/test__field.py::NativeStringTests::test___eq___different_type src/zope/schema/tests/test__field.py::NativeStringTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::NativeStringTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::NativeStringTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::NativeStringTests::test_fromUnicode src/zope/schema/tests/test__field.py::NativeStringTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::NativeStringTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::NativeStringTests::test_is_hashable src/zope/schema/tests/test__field.py::NativeStringLineTests::test___eq___different_type src/zope/schema/tests/test__field.py::NativeStringLineTests::test___eq___same_type_different_attrs src/zope/schema/tests/test__field.py::NativeStringLineTests::test___eq___same_type_same_attrs src/zope/schema/tests/test__field.py::NativeStringLineTests::test_equal_instances_have_same_hash src/zope/schema/tests/test__field.py::NativeStringLineTests::test_fromUnicode src/zope/schema/tests/test__field.py::NativeStringLineTests::test_hash_across_unequal_instances src/zope/schema/tests/test__field.py::NativeStringLineTests::test_instances_in_different_interfaces_not_equal src/zope/schema/tests/test__field.py::NativeStringLineTests::test_is_hashable src/zope/schema/tests/test__field.py::test_suite
src/zope/schema/_field.py CHANGES.rst version.txt docs/api.rst src/zope/schema/interfaces.py
src/zope/schema/_field.py CHANGES.rst version.txt docs/api.rst src/zope/schema/interfaces.py