You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2020/10/07 15:25:40 UTC

[allura] 01/02: [#8376] revert previous formencode py3 workarounds, no longer needed

This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8376
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 16a3963596e83b7b2ed3ae341f075eef47e8f0da
Author: Dave Brondsema <da...@brondsema.net>
AuthorDate: Mon Oct 5 17:05:53 2020 -0400

    [#8376] revert previous formencode py3 workarounds, no longer needed
---
 Allura/allura/lib/validators.py                  | 17 +++--------------
 Allura/allura/lib/widgets/discuss.py             |  7 +------
 Allura/allura/lib/widgets/forms.py               | 14 --------------
 ForgeImporters/forgeimporters/base.py            | 12 ------------
 ForgeTracker/forgetracker/widgets/ticket_form.py |  2 +-
 5 files changed, 5 insertions(+), 47 deletions(-)

diff --git a/Allura/allura/lib/validators.py b/Allura/allura/lib/validators.py
index 28c224b..a984958 100644
--- a/Allura/allura/lib/validators.py
+++ b/Allura/allura/lib/validators.py
@@ -72,6 +72,7 @@ class UnicodeString(fev.UnicodeString):
     """
     Override UnicodeString to fix bytes handling.
     Specifically ran into problems with its 'tooLong' check is running on bytes incorrectly and getting wrong length
+    And sometimes would return b'foo' when we wanted 'foo'
 
     Fixed elsewhere like this too:
         https://github.com/formencode/formencode/issues/2#issuecomment-378410047
@@ -81,13 +82,7 @@ class UnicodeString(fev.UnicodeString):
 
 
 # make UnicodeString fix above work through this String alias, just like formencode aliases String
-String = UnicodeString if str is str else fev.ByteString
-
-
-class FieldStorageUploadConverter(fev.FieldStorageUploadConverter):
-    # https://github.com/formencode/formencode/issues/101 local fix
-    def is_empty(self, value):
-        return value == b'' or super(FieldStorageUploadConverter, self).is_empty(value)
+String = UnicodeString if str is six.text_type else fev.ByteString
 
 
 class Ming(fev.FancyValidator):
@@ -296,7 +291,7 @@ class JsonConverter(fev.FancyValidator):
         return obj
 
 
-class JsonFile(FieldStorageUploadConverter):
+class JsonFile(fev.FieldStorageUploadConverter):
 
     """Validates that a file is JSON and returns the deserialized Python object
 
@@ -464,12 +459,6 @@ def convertTime(timestring):
 
 class IconValidator(fev.FancyValidator):
     regex = '(jpg|jpeg|gif|png|bmp)$'
-
-    # https://github.com/formencode/formencode/issues/101 local fix
-    # formencode is_empty doesn't handle empty bytestring by default
-    def is_empty(self, val):
-        return val == b'' or super(IconValidator, self).is_empty(val)
-
     def _to_python(self, value, state):
         p = re.compile(self.regex, flags=re.I)
         result = p.search(value.filename)
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 5abdf4b..9338fbb 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -40,11 +40,6 @@ class NullValidator(fev.FancyValidator):
     def _from_python(self, value, state):
         return value
 
-    # https://github.com/formencode/formencode/issues/101 local fix
-    def is_empty(self, value):
-        return value == b'' or super(NullValidator, self).is_empty(value)
-
-
 # Discussion forms
 
 
@@ -211,7 +206,7 @@ class NewTopicPost(EditPost):
         fields = super(NewTopicPost, self).fields
         fields.append(ew.InputField(name='attachment', label='Attachment', field_type='file',
                                     attrs={'multiple': 'True'},
-                                    validator=v.FieldStorageUploadConverter(if_missing=None)))
+                                    validator=fev.FieldStorageUploadConverter(if_missing=None)))
         return fields
 
 
diff --git a/Allura/allura/lib/widgets/forms.py b/Allura/allura/lib/widgets/forms.py
index d79b3ae..54082ce 100644
--- a/Allura/allura/lib/widgets/forms.py
+++ b/Allura/allura/lib/widgets/forms.py
@@ -125,20 +125,6 @@ class ForgeForm(ew.SimpleForm):
                                                          ctx['errors'])
         return Markup(display)
 
-    # https://github.com/formencode/formencode/issues/101 local fix
-    def _make_schema(self):
-        schema = super(ForgeForm, self)._make_schema()
-
-        orig_val_is_iter = schema._value_is_iterator
-
-        def _value_is_iterator(val):
-            if isinstance(val, bytes):
-                return False
-            return orig_val_is_iter(val)
-        schema._value_is_iterator = _value_is_iterator
-
-        return schema
-
 
 class ForgeFormResponsive(ForgeForm):
     def __init__(self):
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index a37b8e3..ea87738 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -73,12 +73,6 @@ class ProjectImportForm(schema.Schema):
     neighborhood = fev.NotEmpty()
     project_name = v.UnicodeString(not_empty=True, max=40)
 
-    # https://github.com/formencode/formencode/issues/101 local fix
-    def _value_is_iterator(self, value):
-        if isinstance(value, bytes):
-            return False
-        return super(ProjectImportForm, self)._value_is_iterator(value)
-
 
 class ToolImportForm(schema.Schema):
 
@@ -87,12 +81,6 @@ class ToolImportForm(schema.Schema):
         self.add_field('mount_point', v.MountPointValidator(tool_class))
     mount_label = v.UnicodeString()
 
-    # https://github.com/formencode/formencode/issues/101 local fix
-    def _value_is_iterator(self, value):
-        if isinstance(value, bytes):
-            return False
-        return super(ToolImportForm, self)._value_is_iterator(value)
-
 
 class ImportErrorHandler(object):
 
diff --git a/ForgeTracker/forgetracker/widgets/ticket_form.py b/ForgeTracker/forgetracker/widgets/ticket_form.py
index 73eb753..fa1ddd4 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_form.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_form.py
@@ -124,7 +124,7 @@ class GenericTicketForm(ew.SimpleForm):
                         validator=fev.StringBool(),
                         attrs={'class': 'unlabeled'}),
             ew.InputField(name='attachment', label='Attachment', field_type='file', attrs={
-                          'multiple': 'True'}, validator=v.FieldStorageUploadConverter(if_missing=None)),
+                          'multiple': 'True'}, validator=fev.FieldStorageUploadConverter(if_missing=None)),
             ffw.MarkdownEdit(name='comment', label='Comment',
                              attrs={'style': 'min-height:7em; width:97%'}),
             ew.SubmitButton(label=self.submit_text, name='submit',