Skip to content
⁣ Florian Best edited this page Dec 27, 2018 · 20 revisions

Here is a list of things which still need to be done:

httoop 1.0

meta

  • implement more test cases (goal: 90% coverage)
  • add module documentation
  • add sphinx-autodoc

TODO

  • implement Range header + integration in statemachine
  • implement Cookie header + Cookie-storage-utils
  • implement Content-Encoding codecs (gzip/deflate) in statemachine
  • Implement Forwarded header
  • Implement WSGI components
  • Header fields with UTF-8 should be composed in MIME syntax
  • move StateMachine.parse_chunked_body into a Codec used by Body.parse() ?!
  • rename all uppercase status exception classes into lowercase PEP8 conform?
  • namespaces
  • non-strict error behavior (e.g. ignore invalid headers)
  • turn every parsing method into an optional coroutine
  • implement (instead of InvalidFoo) → ParseError(reason=syntax-error|decode-error|encode-error, what=URI, ABNF=rule, data=...)
  • CLI Client
  • parse multiple status lines e.g. 100-continue + (leading CRLF?)

codecs

  • use pythons original codecs?
  • Implement iterencode/iterdecode for every Codec

httoop 1.x

  • Add HeaderElement flag which makes the header composed in multiple lines (e.g. Authorization: foo\r\nAuthorization: bar\r\n)
  • parse HTTP header comments (Via, Server, User-Agent)
  • Implement Authentication-Info header
  • Implement Body().lock()
  • from __future__ import unicode_literals in all modules
  • implement pickle-ability?
  • check all __repr__ methods

discussion TBD

  • parse coordinate query string ("500,400" → dict(x=500, y=400) ?
  • parse HTTP/1.0 query strings with ';' separated params?
  • limit the number of http header?
  • Implement Body.__getitem__ for slicing?

httoop 2.0

Clone this wiki locally