Merge sc-mainline-prod

Bug: 189946434
Change-Id: I3384a47b9bcc55f512ea398f42dc5d7aba5e3d1d
tree: 994f7da7a7f4f482fcf3528bbe7ba101c62806b8
  1. .dockerignore
  2. .gitignore
  3. .travis.yml
  4. Android.bp
  5. ipaddress.py
  6. LICENSE
  7. Makefile
  8. MANIFEST.in
  9. METADATA
  10. MODULE_LICENSE_PSF
  11. OTHER_BACKPORTS.md
  12. README.md
  13. setup.cfg
  14. setup.py
  15. test-python2.6.Dockerfile
  16. test-python2.7.Dockerfile
  17. test-python3.2.Dockerfile
  18. test-python3.3.Dockerfile
  19. test_ipaddress.py
README.md

ipaddress

Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2.

This repository tracks the latest version from cpython, e.g. ipaddress from cpython 3.8 as of writing.

Note that just like in Python 3.3+ you must use character strings and not byte strings for textual IP address representations:

>>> from __future__ import unicode_literals
>>> ipaddress.ip_address('1.2.3.4')
IPv4Address(u'1.2.3.4')

or

>>> ipaddress.ip_address(u'1.2.3.4')
IPv4Address(u'1.2.3.4')

but not:

>>> ipaddress.ip_address(b'1.2.3.4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ipaddress.py", line 163, in ip_address
    ' a unicode object?' % address)
ipaddress.AddressValueError: '1.2.3.4' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?