avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Hunt (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AVRO-199) Clean up schemas in testio.py
Date Wed, 18 Nov 2009 23:21:39 GMT

     [ https://issues.apache.org/jira/browse/AVRO-199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Patrick Hunt updated AVRO-199:
------------------------------

    Status: Open  (was: Patch Available)

This patch looks good to me in general, the use of '"xxx"' rather than "\"xxx\"" is def more
readable. (still not
great but def better). Kudos on adding some comments.

I personally don't like the multi line use of """ for some of the schema definitions in this
patch. I admit
this is my personal preference, but I find having these lines "stick out" of normal indentation
to be 
"bad". 

Would you consider doing the following instead?

rather than:
+    expected_schema = """\
+{"type": "record",
+ "name": "Foo",
+ "fields": [{"name": "f", "type": %s, "default": %s}]}
+""" % (schemajson, defaultjson)
+    expected = schema.parse(expected_schema)

instead do:
+    expected_schema = (
+        '{"type": "record",'
+        '"name": "Foo",'
+        '"fields": [{"name": "f", "type": %s, "default": %s}]}'
+         )  % (schemajson, defaultjson)
+    expected = schema.parse(expected_schema)



> Clean up schemas in testio.py
> -----------------------------
>
>                 Key: AVRO-199
>                 URL: https://issues.apache.org/jira/browse/AVRO-199
>             Project: Avro
>          Issue Type: Improvement
>          Components: python
>            Reporter: Jeff Hammerbacher
>            Assignee: Jeff Hammerbacher
>         Attachments: AVRO-199.patch, AVRO-199.patch
>
>
> As discussed on the mailing list, it would be nice to leverage Python's expressive string
syntax to not perform lots of escaping of Avro schemas defined in code and make the schemas
more readable.
> This patch cleans up schemas in testio.py to make them more readable. Note that to get
this to pass the tests, I had to implement a new "remove_whitespace()" helper function to
replace the current naive approach to replacing whitespace (s.replace(" ", "") is not going
to cut it). I also object to the round-trip string conversion test, as noted in the comments
to this patch, but I'll save that change for another patch to better separate concerns.
> If this code change is deemed useful, I'll convert the rest of the schemas in the Python
code to leverage Python's string formatting. I have a ridiculously naive tool that I used
for schema conversion that I threw up at http://github.com/hammer/avro-tools/blob/master/pprint_avsc
for those interested.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message