SCons.Node.FS.Base

Package SCons :: Package Node :: Module FS :: Class Base |
[hide private]
[frames] | no frames]

# Class Base

source code

    Node --+
           |
          Base

Known Subclasses:
  Dir, Entry, File

A generic class for file system entries. This class is for when we don't know yet whether the entry being looked up is a file or a directory. Instances of this class can morph into either Dir or File objects by a later, more precise lookup.

Note: this class does not define __cmp__ and __hash__ for efficiency reasons. SCons does a lot of comparing of Node.FS.{Base,Entry,File,Dir} objects, so those operations must be as fast as possible, which means we want to use Python's built-in object identity comparisons.

Nested Classes | [hide private]
Inherited from `Node`: `Attrs`, `BuildInfo`, `NodeInfo`

Instance Methods | [hide private]
__init__(self, name, directory, fs) Initialize a generic Node.FS.Base object. | source code
must_be_same(self, klass) This node, which already existed, is being looked up as the specified klass. | source code
get_dir(self) | source code
get_suffix(self) | source code
rfile(self) | source code
__str__(self) A Node.FS.Base object's string representation is its path name. | source code
_save_str(self) | source code
_get_str(self) | source code
rstr(self) A Node.FS.Base object's string representation is its path name. | source code
stat(self) | source code
exists(self) Does this node exists? | source code
rexists(self) Does this node exist locally or in a repositiory? | source code
getmtime(self) | source code
getsize(self) | source code
isdir(self) | source code
isfile(self) | source code
islink(self) | source code
is_under(self, dir) | source code
set_local(self) | source code
srcnode(self) If this node is in a build path, return the node corresponding to its source file. | source code
get_path(self, dir=False) Return path relative to the current working directory of the Node.FS.Base object that owns us. | source code
set_src_builder(self, builder) Set the source code builder for this node. | source code
src_builder(self) Fetch the source code builder for this node. | source code
get_abspath(self) Get the absolute path of the file. | source code
for_signature(self) Return a string representation of the Node that will always be the same for this particular Node, no matter what. | source code
get_subst_proxy(self) This method is expected to return an object that will function exactly like this Node, except that it implements any additional special features that we would like to be in effect for Environment variable substitution. | source code
target_from_source(self, prefix, suffix, splitext=<function splitext at 0x109a500>) Generates a target entry that corresponds to this entry (usually a source file) with the specified prefix and suffix. | source code
_Rfindalldirs_key(self, pathlist) | source code
Rfindalldirs(self, pathlist) Return all of the directories for a given path list, including corresponding "backing" directories in any repositories. | source code
RDirs(self, pathlist) Search for a list of directories in the Repository list. | source code
rentry(self) | source code
_glob1(self, pattern, ondisk=True, source=False, strings=False) | source code
Inherited from `Node`: `Decider`, `add_dependency`, `add_ignore`, `add_prerequisite`, `add_source`, `add_to_implicit`, `add_to_waiting_parents`, `add_to_waiting_s_e`, `add_wkid`, `all_children`, `alter_targets`, `build`, `builder_set`, `built`, `call_for_all_waiting_parents`, `changed`, `changed_since_last_build`, `children`, `children_are_up_to_date`, `clear`, `clear_memoized_values`, `del_binfo`, `disambiguate`, `do_not_ignore`, `do_not_store_info`, `env_set`, `executor_cleanup`, `explain`, `get_binfo`, `get_build_env`, `get_build_scanner_path`, `get_builder`, `get_cachedir_csig`, `get_csig`, `get_env`, `get_env_scanner`, `get_executor`, `get_found_includes`, `get_implicit_deps`, `get_ninfo`, `get_source_scanner`, `get_state`, `get_stored_implicit`, `get_stored_info`, `get_string`, `get_target_scanner`, `has_builder`, `has_explicit_builder`, `is_derived`, `is_literal`, `is_up_to_date`, `make_ready`, `missing`, `multiple_side_effect_has_builder`, `new_binfo`, `new_ninfo`, `postprocess`, `prepare`, `remove`, `render_include_tree`, `reset_executor`, `retrieve_from_cache`, `scan`, `scanner_key`, `select_scanner`, `set_always_build`, `set_executor`, `set_explicit`, `set_nocache`, `set_noclean`, `set_precious`, `set_state`, `state_has_changed`, `store_info`, `visited` Inherited from `Node` (private): `_add_child`, `_all_children_get`, `_children_get`, `_children_reset`

Class Variables | [hide private]
| memoizer_counters = ``[`<SCons.Memoize.CountValue instance at 0xf`...``
Inherited from `Node`: `__metaclass__`

Method Details | [hide private]

### __init__(self, name, directory, fs) (Constructor) | source code
Initialize a generic Node.FS.Base object. Call the superclass initialization, take care of setting up our relative and absolute paths, identify our parent directory, and indicate that this node should use signatures. Overrides: Node.__init__

### must_be_same(self, klass) | source code
This node, which already existed, is being looked up as the specified klass. Raise an exception if it isn't.

### get_suffix(self) | source code
Overrides: Node.get_suffix

### exists(self) | source code
Does this node exists? Overrides: Node.exists (inherited documentation)

### rexists(self) | source code
Does this node exist locally or in a repositiory? Overrides: Node.rexists (inherited documentation)

### srcnode(self) | source code
If this node is in a build path, return the node corresponding to its source file. Otherwise, return ourself.

### src_builder(self) | source code
Fetch the source code builder for this node. If there isn't one, we cache the source code builder specified for the directory (which in turn will cache the value from its parent directory, and so on up to the file system root).

### get_abspath(self) | source code
Get the absolute path of the file. Overrides: Node.get_abspath

### for_signature(self) | source code
Return a string representation of the Node that will always be the same for this particular Node, no matter what. This is by contrast to the __str__() method, which might, for instance, return a relative path for a file Node. The purpose of this method is to generate a value to be used in signature calculation for the command line used to build a target, and we use this method instead of str() to avoid unnecessary rebuilds. This method does not need to return something that would actually work in a command line; it can return any kind of nonsense, so long as it does not change. Overrides: Node.for_signature (inherited documentation)

### get_subst_proxy(self) | source code
This method is expected to return an object that will function exactly like this Node, except that it implements any additional special features that we would like to be in effect for Environment variable substitution. The principle use is that some Nodes would like to implement a __getattr__() method, but putting that in the Node type itself has a tendency to kill performance. We instead put it in a proxy and return it from this method. It is legal for this method to return self if no new functionality is needed for Environment substitution. Overrides: Node.get_subst_proxy (inherited documentation)

### target_from_source(self, prefix, suffix, splitext=<function splitext at 0x109a500>) | source code
Generates a target entry that corresponds to this entry (usually a source file) with the specified prefix and suffix. Note that this method can be overridden dynamically for generated files that need different behavior. See Tool/swig.py for an example.

### Rfindalldirs(self, pathlist) | source code
Return all of the directories for a given path list, including corresponding "backing" directories in any repositories. The Node lookups are relative to this Node (typically a directory), so memoizing result saves cycles from looking up the same path for each target in a given directory.

Class Variable Details | [hide private]

  ### memoizer_counters Value:
      []