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

Class Entry

source code

object --+        
         |        
      Node --+    
             |    
          Base --+
                 |
                Entry

This is the class for generic Node.FS entries--that is, things
that could be a File or a Dir, but we're just not sure yet.
Consequently, the methods in this class really exist just to
transform their associated object into the right class when the
time comes, and then call the same-named method in the transformed
class.



Nested Classes [hide private]

Inherited from Node: Attrs, BuildInfo, NodeInfo

Instance Methods [hide private]
 
diskcheck_match(self) source code
 
disambiguate(self, must_exist=False) source code
 
rfile(self)
We're a generic Entry, but the caller is actually looking for a File at this point, so morph into one.
source code
 
scanner_key(self) source code
 
get_contents(self)
Fetch the contents of the entry.
source code
 
get_text_contents(self)
Fetch the decoded text contents of a Unicode encoded Entry.
source code
 
must_be_same(self, klass)
Called to make sure a Node is a Dir.
source code
 
exists(self)
Return if the Entry exists.
source code
 
rel_path(self, other) source code
 
new_ninfo(self) source code
 
changed_since_last_build(self, target, prev_ni)
Must be overridden in a specific subclass to return True if this Node (a dependency) has changed since the last time it was used to build the specified target.
source code
 
_glob1(self, pattern, ondisk=True, source=False, strings=False) 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

Inherited from Base: RDirs, Rfindalldirs, __init__, __str__, for_signature, get_abspath, get_dir, get_path, get_suffix, getmtime, getsize, is_under, isdir, isfile, islink, rentry, rexists, rstr, set_local, set_src_builder, src_builder, srcnode, stat, str_for_display, target_from_source

Inherited from Base (private): _Rfindalldirs_key, _get_str, _save_str

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, changed, children, children_are_up_to_date, clear, clear_memoized_values, del_binfo, 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, postprocess, prepare, push_to_cache, remove, render_include_tree, reset_executor, retrieve_from_cache, scan, select_scanner, set_always_build, set_executor, set_explicit, set_nocache, set_noclean, set_precious, set_specific_source, set_state, state_has_changed, store_info, visited

Inherited from Node (private): _add_child, _children_get, _children_reset

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__

Class Variables [hide private]

Inherited from Base: memoizer_counters

Inherited from Node: __metaclass__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

disambiguate(self, must_exist=False)

source code 

        

Overrides: Node.disambiguate

rfile(self)

source code 
We're a generic Entry, but the caller is actually looking for
a File at this point, so morph into one.

Overrides: Base.rfile

scanner_key(self)

source code 
Overrides: Node.scanner_key

get_contents(self)

source code 
Fetch the contents of the entry.  Returns the exact binary
contents of the file.

get_text_contents(self)

source code 
Fetch the decoded text contents of a Unicode encoded Entry.

Since this should return the text contents from the file
system, we check to see into what sort of subclass we should
morph this Entry.

must_be_same(self, klass)

source code 
Called to make sure a Node is a Dir.  Since we're an
Entry, we can morph into one.

Overrides: Base.must_be_same

exists(self)

source code 
Return if the Entry exists.  Check the file system to see
what we should turn into first.  Assume a file if there's no
directory.

Overrides: Base.exists

new_ninfo(self)

source code 
Overrides: Node.new_ninfo

changed_since_last_build(self, target, prev_ni)

source code 


Must be overridden in a specific subclass to return True if this
Node (a dependency) has changed since the last time it was used
to build the specified target.  prev_ni is this Node's state (for
example, its file timestamp, length, maybe content signature)
as of the last time the target was built.

Note that this method is called through the dependency, not the
target, because a dependency Node must be able to use its own
logic to decide if it changed.  For example, File Nodes need to
obey if we're configured to use timestamps, but Python Value Nodes
never use timestamps and always use the content.  If this method
were called through the target, then each Node's implementation
of this method would have to have more complicated logic to
handle all the different Node types on which it might depend.

Overrides: Node.changed_since_last_build
(inherited documentation)

_glob1(self, pattern, ondisk=True, source=False, strings=False)

source code 
Overrides: Base._glob1

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: Base.get_subst_proxy