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

          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 .
          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
          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).
          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.
          Hide
          Doug Cutting added a comment -

          I just committed this. Thanks, Jeff!

          Show
          Doug Cutting added a comment - I just committed this. Thanks, Jeff!

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development