##// END OF EJS Templates
Disable typecheck for namespaces to be dicts....
Disable typecheck for namespaces to be dicts. This will allow more sophisticated objects to be used as namespaces, which can provide custom behavior.

File last commit:

r1234:52b55407
r1421:9cb86e51
Show More
fcutil.py
69 lines | 2.1 KiB | text/x-python | PythonLexer
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 # encoding: utf-8
"""Foolscap related utilities."""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
import os
from foolscap import Tub, UnauthenticatedTub
def check_furl_file_security(furl_file, secure):
"""Remove the old furl_file if changing security modes."""
if os.path.isfile(furl_file):
f = open(furl_file, 'r')
oldfurl = f.read().strip()
f.close()
if (oldfurl.startswith('pb://') and not secure) or (oldfurl.startswith('pbu://') and secure):
os.remove(furl_file)
def is_secure(furl):
if is_valid(furl):
if furl.startswith("pb://"):
return True
elif furl.startswith("pbu://"):
return False
else:
raise ValueError("invalid furl: %s" % furl)
def is_valid(furl):
if isinstance(furl, str):
if furl.startswith("pb://") or furl.startswith("pbu://"):
return True
else:
return False
def find_furl(furl_or_file):
if isinstance(furl_or_file, str):
if is_valid(furl_or_file):
return furl_or_file
if os.path.isfile(furl_or_file):
furl = open(furl_or_file, 'r').read().strip()
if is_valid(furl):
return furl
raise ValueError("not a furl or a file containing a furl: %s" % furl_or_file)
# We do this so if a user doesn't have OpenSSL installed, it will try to use
# an UnauthenticatedTub. But, they will still run into problems if they
# try to use encrypted furls.
try:
import OpenSSL
except:
Tub = UnauthenticatedTub
have_crypto = False
else:
have_crypto = True