SCons.Node.FS.File

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

# Class File

source code

    Node --+
           |
        Base --+
               |
              File

A class for files in a file system.

Nested Classes | [hide private]
| NodeInfo The generic base class for signature information for a Node.
| BuildInfo The generic base class for build information for a Node.
Inherited from `Node`: `Attrs`

Instance Methods | [hide private]
diskcheck_match(self) | source code
__init__(self, name, directory, fs) Initialize a generic Node.FS.Base object. | source code
Entry(self, name) Create an entry node named 'name' relative to the SConscript directory of this file. | source code
Dir(self, name, create=True) Create a directory node named 'name' relative to the SConscript directory of this file. | source code
Dirs(self, pathlist) Create a list of directories relative to the SConscript directory of this file. | source code
File(self, name) Create a file node named 'name' relative to the SConscript directory of this file. | source code
_morph(self) Turn a file system node into a File object. | source code
scanner_key(self) | source code
get_contents(self) | source code
get_size(self) | source code
get_timestamp(self) | source code
store_info(self) Make the build signature permanent (that is, store it in the .sconsign file or equivalent). | source code
convert_old_entry(self, old_entry) | source code
get_stored_info(self) | source code
get_stored_implicit(self) Fetch the stored implicit dependencies | source code
rel_path(self, other) | source code
_get_found_includes_key(self, env, scanner, path) | source code
get_found_includes(self, env, scanner, path) Return the included implicit dependencies in this file. | source code
_createDir(self) | source code
retrieve_from_cache(self) Try to retrieve the node's content from a cache | source code
built(self) Called just after this node is successfully built. | source code
visited(self) Called just after this node has been visited (with or without a build). | source code
find_src_builder(self) | source code
has_src_builder(self) Return whether this Node has a source builder or not. | source code
alter_targets(self) Return any corresponding targets in a variant directory. | source code
_rmv_existing(self) | source code
make_ready(self) Get a Node ready for evaluation. | source code
prepare(self) Prepare for this file to be created. | source code
remove(self) Remove this file. | source code
do_duplicate(self, src) | source code
exists(self) Does this node exists? | source code
get_max_drift_csig(self) Returns the content signature currently stored for this node if it's been unmodified longer than the max_drift value, or the max_drift value is 0. | source code
get_csig(self) Generate a node's content signature, the digested signature of its content. | source code
builder_set(self, builder) | source code
changed_content(self, target, prev_ni) | source code
changed_state(self, target, prev_ni) | source code
changed_timestamp_then_content(self, target, prev_ni) | source code
changed_timestamp_newer(self, target, prev_ni) | source code
changed_timestamp_match(self, target, prev_ni) | source code
decide_source(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
decide_target(self, target, prev_ni) | 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
is_up_to_date(self) Default check for whether the Node is current: unknown Node subtypes are always out of date, so they will always get built. | source code
rfile(self) | source code
rstr(self) A Node.FS.Base object's string representation is its path name. | source code
get_cachedir_csig(self) Fetch a Node's content signature for purposes of computing another Node's cachesig. | source code
get_cachedir_bsig(self) | source code
Inherited from `Base`: `RDirs`, `Rfindalldirs`, `__str__`, `for_signature`, `get_abspath`, `get_dir`, `get_path`, `get_subst_proxy`, `get_suffix`, `getmtime`, `getsize`, `is_under`, `isdir`, `isfile`, `islink`, `must_be_same`, `rentry`, `rexists`, `set_local`, `set_src_builder`, `src_builder`, `srcnode`, `stat`, `target_from_source` Inherited from `Base` (private): `_Rfindalldirs_key`, `_get_str`, `_glob1`, `_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`, `build`, `call_for_all_waiting_parents`, `changed`, `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_env`, `get_env_scanner`, `get_executor`, `get_implicit_deps`, `get_ninfo`, `get_source_scanner`, `get_state`, `get_string`, `get_target_scanner`, `has_builder`, `has_explicit_builder`, `is_derived`, `is_literal`, `missing`, `multiple_side_effect_has_builder`, `new_binfo`, `new_ninfo`, `postprocess`, `render_include_tree`, `reset_executor`, `scan`, `select_scanner`, `set_always_build`, `set_executor`, `set_explicit`, `set_nocache`, `set_noclean`, `set_precious`, `set_state`, `state_has_changed` 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`...``
| convert_copy_attrs = ``[``'``bsources``'``,` `'``bimplicit``'``,` `'``bdepends``'``,` `'``ba``...``
| convert_sig_attrs = ``[``'``bsourcesigs``'``,` `'``bimplicitsigs``'``,` `'``bdepends``...``
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: Base.__init__ (inherited documentation)

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

### store_info(self) | source code
Make the build signature permanent (that is, store it in the .sconsign file or equivalent). Overrides: Node.store_info (inherited documentation)

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

### get_stored_implicit(self) | source code
Fetch the stored implicit dependencies Overrides: Node.get_stored_implicit (inherited documentation)

### get_found_includes(self, env, scanner, path) | source code
Return the included implicit dependencies in this file. Cache results so we only scan the file once per path regardless of how many times this information is requested. Overrides: Node.get_found_includes

### retrieve_from_cache(self) | source code
Try to retrieve the node's content from a cache This method is called from multiple threads in a parallel build, so only do thread safe stuff here. Do thread unsafe stuff in built(). Returns true iff the node was successfully retrieved. Overrides: Node.retrieve_from_cache

### built(self) | source code
Called just after this node is successfully built. Overrides: Node.built

### visited(self) | source code
Called just after this node has been visited (with or without a build). Overrides: Node.visited (inherited documentation)

### has_src_builder(self) | source code
Return whether this Node has a source builder or not. If this Node doesn't have an explicit source code builder, this is where we figure out, on the fly, if there's a transparent source code builder for it. Note that if we found a source builder, we also set the self.builder attribute, so that all of the methods that actually build this file don't have to do anything different.

### alter_targets(self) | source code
Return any corresponding targets in a variant directory. Overrides: Node.alter_targets

### make_ready(self) | source code
Get a Node ready for evaluation. This is called before the Taskmaster decides if the Node is up-to-date or not. Overriding this method allows for a Node subclass to be disambiguated if necessary, or for an implicit source builder to be attached. Overrides: Node.make_ready (inherited documentation)

### prepare(self) | source code
Prepare for this file to be created. Overrides: Node.prepare

### remove(self) | source code
Remove this file. Overrides: Node.remove

### exists(self) | source code
Does this node exists? Overrides: Base.exists

### get_max_drift_csig(self) | source code
Returns the content signature currently stored for this node if it's been unmodified longer than the max_drift value, or the max_drift value is 0. Returns None otherwise.

### get_csig(self) | source code
Generate a node's content signature, the digested signature of its content. node - the node cache - alternate node to use for the signature cache returns - the content signature Overrides: Node.get_csig

### builder_set(self, builder) | source code
Overrides: Node.builder_set

### 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)

### is_up_to_date(self) | source code
Default check for whether the Node is current: unknown Node subtypes are always out of date, so they will always get built. Overrides: Node.is_up_to_date (inherited documentation)

### rfile(self) | source code
Overrides: Base.rfile

### rstr(self) | source code
A Node.FS.Base object's string representation is its path name. Overrides: Base.__str__ (inherited documentation)

### get_cachedir_csig(self) | source code
Fetch a Node's content signature for purposes of computing another Node's cachesig. This is a wrapper around the normal get_csig() method that handles the somewhat obscure case of using CacheDir with the -n option. Any files that don't exist would normally be "built" by fetching them from the cache, but the normal get_csig() method will try to open up the local file, which doesn't exist because the -n option meant we didn't actually pull the file from cachedir. But since the file does actually exist in the cachedir, we can use its contents for the csig. Overrides: Node.get_cachedir_csig

Class Variable Details | [hide private]

  ### memoizer_counters Value:
      []

  ### convert_copy_attrs Value:
      ['bsources', 'bimplicit', 'bdepends', 'bact', 'bactsig', 'ninfo']

  ### convert_sig_attrs Value:
      ['bsourcesigs', 'bimplicitsigs', 'bdependsigs']