##// END OF EJS Templates
Raise a named exception when pandoc is missing...
Raise a named exception when pandoc is missing In the normal case this will case the interpriter to exit just like sys.exit(...), but it will make it possible for callers to explicitly catch the exception too. Also, removed parens from the pandoc URL so it's easier to triple-click-copy-and-paste.

File last commit:

r10737:c2f04517
r11702:249e2d3a
Show More
localinterfaces.py
55 lines | 1.9 KiB | text/x-python | PythonLexer
MinRK
added localinterfaces to utils
r3143 """Simple utility for building a list of local IPs using the socket module.
This module defines two constants:
Bernardo B. Marques
remove all trailling spaces
r4872 LOCALHOST : The loopback interface, or the first interface that points to this
MinRK
added localinterfaces to utils
r3143 machine. It will *almost* always be '127.0.0.1'
LOCAL_IPS : A list of IP addresses, loopback first, that point to this machine.
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250
PUBLIC_IPS : A list of public IP addresses that point to this machine.
Use these to tell remote clients where to find you.
MinRK
added localinterfaces to utils
r3143 """
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2010-2011 The IPython Development Team
MinRK
added localinterfaces to utils
r3143 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import socket
W. Trevor King
utils.localinterfaces: Uniquify LOCAL_IPS...
r9248 from .data import uniq_stable
MinRK
added localinterfaces to utils
r3143 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
LOCAL_IPS = []
try:
LOCAL_IPS = socket.gethostbyname_ex('localhost')[2]
MinRK
catch socket.error in utils.localinterfaces...
r10737 except socket.error:
MinRK
added localinterfaces to utils
r3143 pass
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250 PUBLIC_IPS = []
MinRK
added localinterfaces to utils
r3143 try:
MinRK
try hostname.local if hostname points to loopback
r10420 hostname = socket.gethostname()
PUBLIC_IPS = socket.gethostbyname_ex(hostname)[2]
# try hostname.local, in case hostname has been short-circuited to loopback
if not hostname.endswith('.local') and all(ip.startswith('127') for ip in PUBLIC_IPS):
PUBLIC_IPS = socket.gethostbyname_ex(socket.gethostname() + '.local')[2]
MinRK
catch socket.error in utils.localinterfaces...
r10737 except socket.error:
MinRK
added localinterfaces to utils
r3143 pass
W. Trevor King
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic...
r9250 else:
PUBLIC_IPS = uniq_stable(PUBLIC_IPS)
LOCAL_IPS.extend(PUBLIC_IPS)
MinRK
added localinterfaces to utils
r3143
# include all-interface aliases: 0.0.0.0 and ''
LOCAL_IPS.extend(['0.0.0.0', ''])
W. Trevor King
utils.localinterfaces: Uniquify LOCAL_IPS...
r9248 LOCAL_IPS = uniq_stable(LOCAL_IPS)
MinRK
added localinterfaces to utils
r3143 LOCALHOST = LOCAL_IPS[0]