diff options
| author | Patrick Simianer <simianer@cl.uni-heidelberg.de> | 2012-05-13 03:35:30 +0200 | 
|---|---|---|
| committer | Patrick Simianer <simianer@cl.uni-heidelberg.de> | 2012-05-13 03:35:30 +0200 | 
| commit | 670a8f984fc6d8342180c59ae9e96b0b76f34d3d (patch) | |
| tree | 9f2ce7eec1a77e56b3bb1ad0ad40f212d7a996b0 /jam-files/boost-build/util/set.py | |
| parent | eb3ee28dc0eb1d3e5ed01ba0df843be329ae450d (diff) | |
| parent | 2f64af3e06a518b93f7ca2c30a9d0aeb2c947031 (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'jam-files/boost-build/util/set.py')
| -rw-r--r-- | jam-files/boost-build/util/set.py | 42 | 
1 files changed, 42 insertions, 0 deletions
diff --git a/jam-files/boost-build/util/set.py b/jam-files/boost-build/util/set.py new file mode 100644 index 00000000..dc7cf328 --- /dev/null +++ b/jam-files/boost-build/util/set.py @@ -0,0 +1,42 @@ +#  (C) Copyright David Abrahams 2001. Permission to copy, use, modify, sell and +#  distribute this software is granted provided this copyright notice appears in +#  all copies. This software is provided "as is" without express or implied +#  warranty, and with no claim as to its suitability for any purpose. + +from utility import to_seq + +def difference (b, a): +    """ Returns the elements of B that are not in A. +    """ +    result = [] +    for element in b: +        if not element in a: +            result.append (element) + +    return result + +def intersection (set1, set2): +    """ Removes from set1 any items which don't appear in set2 and returns the result. +    """ +    result = [] +    for v in set1: +        if v in set2: +            result.append (v) +    return result + +def contains (small, large): +    """ Returns true iff all elements of 'small' exist in 'large'. +    """ +    small = to_seq (small) +    large = to_seq (large) + +    for s in small: +        if not s in large: +            return False +    return True + +def equal (a, b): +    """ Returns True iff 'a' contains the same elements as 'b', irrespective of their order. +        # TODO: Python 2.4 has a proper set class. +    """ +    return contains (a, b) and contains (b, a)  | 
