Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
netrc Class Reference

Public Member Functions

def __init__
 
def authenticators
 
def __repr__
 

Data Fields

 hosts
 
 macros
 

Detailed Description

Definition at line 22 of file netrc.py.

Constructor & Destructor Documentation

def __init__ (   self,
  file = None 
)

Definition at line 23 of file netrc.py.

References aifc.open().

23 
24  def __init__(self, file=None):
25  if not file:
26  file = os.path.join(os.environ['HOME'], ".netrc")
27  fp = open(file)
28  self.hosts = {}
29  self.macros = {}
30  lexer = shlex.shlex(fp)
31  # Allows @ in hostnames. Not a big deal...
32  lexer.wordchars = lexer.wordchars + '.-@'
33  while 1:
34  # Look for a machine, default, or macdef top-level keyword
35  toplevel = tt = lexer.get_token()
36  if not tt:
37  break
38  elif tt == 'machine':
39  entryname = lexer.get_token()
40  elif tt == 'default':
41  entryname = 'default'
42  elif tt == 'macdef': # Just skip to end of macdefs
43  entryname = lexer.get_token()
44  self.macros[entryname] = []
45  lexer.whitespace = ' \t'
46  while 1:
47  line = lexer.instream.readline()
48  if not line or line == '\012':
49  lexer.whitespace = ' \t\r\n'
50  break
51  self.macros[entryname].append(line)
52  continue
53  else:
54  raise NetrcParseError(
55  "bad toplevel token %r" % tt, file, lexer.lineno)
56 
57  # We're looking at start of an entry for a named machine or default.
58  login = account = password = None
59  self.hosts[entryname] = {}
60  while 1:
61  tt = lexer.get_token()
62  if (tt=='' or tt == 'machine' or
63  tt == 'default' or tt =='macdef'):
64  if login and password:
65  self.hosts[entryname] = (login, account, password)
66  lexer.push_token(tt)
67  break
68  else:
69  raise NetrcParseError(
70  "malformed %s entry %s terminated by %s"
71  % (toplevel, entryname, repr(tt)),
72  file, lexer.lineno)
73  elif tt == 'login' or tt == 'user':
74  login = lexer.get_token()
75  elif tt == 'account':
76  account = lexer.get_token()
77  elif tt == 'password':
78  password = lexer.get_token()
79  else:
80  raise NetrcParseError("bad follower token %r" % tt,
81  file, lexer.lineno)

Member Function Documentation

def __repr__ (   self)
Dump the class data in the format of a .netrc file.

Definition at line 91 of file netrc.py.

References netrc.hosts, and netrc.macros.

91 
92  def __repr__(self):
93  """Dump the class data in the format of a .netrc file."""
94  rep = ""
95  for host in self.hosts.keys():
96  attrs = self.hosts[host]
97  rep = rep + "machine "+ host + "\n\tlogin " + repr(attrs[0]) + "\n"
98  if attrs[1]:
99  rep = rep + "account " + repr(attrs[1])
100  rep = rep + "\tpassword " + repr(attrs[2]) + "\n"
101  for macro in self.macros.keys():
102  rep = rep + "macdef " + macro + "\n"
103  for line in self.macros[macro]:
104  rep = rep + line
105  rep = rep + "\n"
106  return rep
def authenticators (   self,
  host 
)
Return a (user, account, password) tuple for given host.

Definition at line 82 of file netrc.py.

References netrc.hosts.

82 
83  def authenticators(self, host):
84  """Return a (user, account, password) tuple for given host."""
85  if self.hosts.has_key(host):
86  return self.hosts[host]
87  elif self.hosts.has_key('default'):
88  return self.hosts['default']
89  else:
90  return None

Field Documentation

hosts

Definition at line 27 of file netrc.py.

macros

Definition at line 28 of file netrc.py.


The documentation for this class was generated from the following file: