Avro
  1. Avro
  2. AVRO-264

Rewrite Python implementation's IPC path (protocol.py, ipc.py, genericipc.py) and associated tests

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.3.0
    • Component/s: python
    • Labels:
      None

      Description

      SImilar to AVRO-219, I'd like to rewirte the IPC path in the Python implementation from scratch.

      1. AVRO-264-protocol.patch
        15 kB
        Jeff Hammerbacher
      2. AVRO-264-protocol-ipc.patch
        41 kB
        Jeff Hammerbacher
      3. AVRO-264.patch
        39 kB
        Jeff Hammerbacher

        Issue Links

          Activity

          Jeff Hammerbacher created issue -
          Jeff Hammerbacher made changes -
          Field Original Value New Value
          Link This issue incorporates AVRO-219 [ AVRO-219 ]
          Jeff Hammerbacher made changes -
          Assignee Jeff Hammerbacher [ hammer ]
          Hide
          Jeff Hammerbacher added a comment -

          New protocol implementation with tests complete. Will knock out ipc.py and genericipc.py tomorrow.

          As always, you can follow the work as it happens at http://github.com/hammer/avro/commits/trunk.

          Show
          Jeff Hammerbacher added a comment - New protocol implementation with tests complete. Will knock out ipc.py and genericipc.py tomorrow. As always, you can follow the work as it happens at http://github.com/hammer/avro/commits/trunk .
          Jeff Hammerbacher made changes -
          Attachment AVRO-264-protocol.patch [ 12428819 ]
          Hide
          Jeff Hammerbacher added a comment -

          I now have a working avro service (the mail service from pat hunt's excellent avro tutorial).

          At this stage my Python implementation provides a superset of functionality of the existing Python implementation. Given that I have five code files, more tests, and a few thousand lines of code to review, and the existing Python maintainer has not been involved in the project for some time, I'd like to suggest replacing the existing implementation with this implementation and I can contribute the refactorings as part of the Avro project rather than continuing to work on github.

          Lots of planned refactorings and extra tests! I also have a large file of implementation notes with a lot of questions that should help clarify things for future implementors (http://github.com/hammer/avro/blob/trunk/src/py/avro/IMPLEMENTATION_NOTES.md).

          Super excited to work on the cross-project test schemas soon.

          Thanks,
          Jeff

          Show
          Jeff Hammerbacher added a comment - I now have a working avro service (the mail service from pat hunt's excellent avro tutorial). At this stage my Python implementation provides a superset of functionality of the existing Python implementation. Given that I have five code files, more tests, and a few thousand lines of code to review, and the existing Python maintainer has not been involved in the project for some time, I'd like to suggest replacing the existing implementation with this implementation and I can contribute the refactorings as part of the Avro project rather than continuing to work on github. Lots of planned refactorings and extra tests! I also have a large file of implementation notes with a lot of questions that should help clarify things for future implementors ( http://github.com/hammer/avro/blob/trunk/src/py/avro/IMPLEMENTATION_NOTES.md ). Super excited to work on the cross-project test schemas soon. Thanks, Jeff
          Jeff Hammerbacher made changes -
          Attachment AVRO-264-protocol-ipc.patch [ 12428903 ]
          Hide
          Jeff Hammerbacher added a comment -

          I've removed the toy server implementation, since Python's SocketServer module serves a similar purpose, and deleting code and imports is a good thing (tm).

          Show
          Jeff Hammerbacher added a comment - I've removed the toy server implementation, since Python's SocketServer module serves a similar purpose, and deleting code and imports is a good thing (tm).
          Jeff Hammerbacher made changes -
          Link This issue blocks AVRO-206 [ AVRO-206 ]
          Jeff Hammerbacher made changes -
          Link This issue blocks AVRO-130 [ AVRO-130 ]
          Jeff Hammerbacher made changes -
          Attachment AVRO-264.patch [ 12429408 ]
          Hide
          Jeff Hammerbacher added a comment -

          This patch contains an implementation of protocol.py and ipc.py that can run Pat Hunt's example "mailbox" service (see http://github.com/phunt/avro-rpc-quickstart) without error (see src/test/py/sample_ipc_[client|server].py). All of the tests pass currently. There are many improvements I'd like to make to this implementation, and I'd like to do them after this patch is committed.

          Show
          Jeff Hammerbacher added a comment - This patch contains an implementation of protocol.py and ipc.py that can run Pat Hunt's example "mailbox" service (see http://github.com/phunt/avro-rpc-quickstart ) without error (see src/test/py/sample_ipc_ [client|server] .py). All of the tests pass currently. There are many improvements I'd like to make to this implementation, and I'd like to do them after this patch is committed.
          Jeff Hammerbacher made changes -
          Status Open [ 1 ] Patch Available [ 10002 ]
          Jeff Hammerbacher made changes -
          Link This issue blocks AVRO-287 [ AVRO-287 ]
          Jeff Hammerbacher made changes -
          Link This issue blocks AVRO-288 [ AVRO-288 ]
          Hide
          Doug Cutting added a comment -

          I just committed this. Thanks, Jeff!

          Show
          Doug Cutting added a comment - I just committed this. Thanks, Jeff!
          Doug Cutting made changes -
          Status Patch Available [ 10002 ] Resolved [ 5 ]
          Fix Version/s 1.3.0 [ 12314318 ]
          Resolution Fixed [ 1 ]
          Doug Cutting made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Patch Available Patch Available
          12d 12h 55m 1 Jeff Hammerbacher 05/Jan/10 02:11
          Patch Available Patch Available Resolved Resolved
          16h 36m 1 Doug Cutting 05/Jan/10 18:48
          Resolved Resolved Closed Closed
          54d 22h 20m 1 Doug Cutting 01/Mar/10 17:09

            People

            • Assignee:
              Jeff Hammerbacher
              Reporter:
              Jeff Hammerbacher
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development