Python operator 模块,__or__() 实例源码

我们从Python开源项目中,提取了以下26个代码示例,用于说明如何使用operator.__or__()

项目:nstock    作者:ybenitezf    | 项目源码 | 文件源码
def __or__(self, other):
        return self.union(other)
项目:nstock    作者:ybenitezf    | 项目源码 | 文件源码
def union(self, other):
        if isinstance(other, BitSet):
            return self._logic(self.copy(), operator.__or__, other)
        b = self.copy()
        b.update(other)
        return b
项目:python_mozetl    作者:mozilla    | 项目源码 | 文件源码
def column_like(name, patterns, default):
    """ patterns: dict[label, list[match_expr]]"""
    # start with the pyspark.sql.functions
    op = F
    for label in patterns:
        cond = reduce(
            operator.__or__,
            [F.col(name).like(pat) for pat in patterns[label]]
        )
        op = op.when(cond, label)
    return op.otherwise(default)
项目:ntypes    作者:AlexAltea    | 项目源码 | 文件源码
def __or__(self, rhs):
        return op_binary(self, rhs, operator.__or__)
项目:ntypes    作者:AlexAltea    | 项目源码 | 文件源码
def __ror__(self, lhs):
        return op_binary(lhs, self, operator.__or__)
项目:ntypes    作者:AlexAltea    | 项目源码 | 文件源码
def __ior__(self, v):
        return self.op_binary_inplace(v, operator.__or__)
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def __or__(self, other):
        return self.union(other)
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def union(self, other):
        if isinstance(other, BitSet):
            return self._logic(self.copy(), operator.__or__, other)
        b = self.copy()
        b.update(other)
        return b
项目:WhooshSearch    作者:rokartnaz    | 项目源码 | 文件源码
def __or__(self, other):
        return self.union(other)
项目:WhooshSearch    作者:rokartnaz    | 项目源码 | 文件源码
def union(self, other):
        if isinstance(other, BitSet):
            return self._logic(self.copy(), operator.__or__, other)
        b = self.copy()
        b.update(other)
        return b
项目:cpy2py    作者:maxfischer2781    | 项目源码 | 文件源码
def __or__(self, other):
        with self._lock:
            return operator.__or__(self.__wrapped__, other)
项目:cpy2py    作者:maxfischer2781    | 项目源码 | 文件源码
def __ror__(self, other):
        with self._lock:
            return operator.__or__(other, self.__wrapped__)

    # inplace operations
项目:forest-django    作者:ForestAdmin    | 项目源码 | 文件源码
def _handle_search_param(self):
        search_param = self.params.get('search')
        if not search_param:
            return

        fields = [f.name for f in self.model._meta.get_fields() if not f.is_relation]
        q_list = [Q(**{'%s__icontains' % f : search_param}) for f in fields]
        related = [f for f in self.model._meta.get_fields() if isinstance(f, ForeignKey)]
        for rel in related:
            model = rel.related_model
            r_fields = [f.name for f in model._meta.get_fields() if not f.is_relation]
            q_list += [Q(**{'%s__%s__icontains' % (rel.name, r_field): search_param}) for r_field in r_fields]
        search_filter = reduce(OR, q_list)

        return search_filter
项目:QualquerMerdaAPI    作者:tiagovizoto    | 项目源码 | 文件源码
def __or__(self, other):
        return self.union(other)
项目:QualquerMerdaAPI    作者:tiagovizoto    | 项目源码 | 文件源码
def union(self, other):
        if isinstance(other, BitSet):
            return self._logic(self.copy(), operator.__or__, other)
        b = self.copy()
        b.update(other)
        return b
项目:c3nav    作者:c3nav    | 项目源码 | 文件源码
def intersection(self, geometry):
            try:
                geoms = geometry.geoms
            except AttributeError:
                return set(self._index.intersection(geometry.bounds))
            else:
                return reduce(operator.__or__, (self.intersection(geom) for geom in geoms), set())
项目:hachoir3    作者:vstinner    | 项目源码 | 文件源码
def __or__(self, other):
        """
        Public method of OR operator: a|b. It call or_() internal method.
        If or_() returns None: RegexOr object is used (and otherwise,
        use or_() result).
        """
        # Try to optimize (a|b)
        new_regex = self.or_(other)
        if new_regex:
            return new_regex

        # Else use (a|b)
        return RegexOr((self, other))
项目:hachoir3    作者:vstinner    | 项目源码 | 文件源码
def join(cls, regex):
        """
        >>> RegexOr.join( (RegexString('a'), RegexString('b'), RegexString('c')) )
        <RegexRange '[a-c]'>
        """
        return _join(operator.__or__, regex)
项目:android-resources-id-recovery    作者:smartdone    | 项目源码 | 文件源码
def merge(old, new):
    prims = ImmutableTreeList.merge(old.prims, new.prims, operator.__and__)
    arrs = ImmutableTreeList.merge(old.arrs, new.arrs, arrays.merge)
    tainted = ImmutableTreeList.merge(old.tainted, new.tainted, operator.__or__)
    if prims is old.prims and arrs is old.arrs and tainted is old.tainted:
        return old
    return TypeInfo(prims, arrs, tainted)
项目:hb    作者:saks    | 项目源码 | 文件源码
def _update_spent(self):
        today = date.today()
        first_month_day = date(today.year, today.month, 1)
        spent = Record.objects.filter(user=self.user,
                                      transaction_type='EXP',
                                      created_at__gte=first_month_day)
        tags_list = []
        for tag in self.get_tags_list():
            tags_list.append(Q(tags=getattr(Record.tags, tag)))
        if self.tags_type == 'INCL':
            spent = spent.filter(reduce(OR, tags_list))
        if self.tags_type == 'EXCL':
            spent = spent.exclude(reduce(OR, tags_list))
        spent = spent.aggregate(spent=Sum('amount'))
        self.__spent = spent['spent'] if spent['spent'] else 0
项目:Hawkeye    作者:tozhengxq    | 项目源码 | 文件源码
def __or__(self, other):
        return self.union(other)
项目:Hawkeye    作者:tozhengxq    | 项目源码 | 文件源码
def union(self, other):
        if isinstance(other, BitSet):
            return self._logic(self.copy(), operator.__or__, other)
        b = self.copy()
        b.update(other)
        return b
项目:py-flags    作者:pasztorpisti    | 项目源码 | 文件源码
def test_or(self):
        self._test_incompatible_types_fail(operator.__or__)

        self.assertEqual(no_flags | no_flags, no_flags)
        self.assertEqual(no_flags | all_flags, all_flags)
        self.assertEqual(no_flags | f0, f0)
        self.assertEqual(no_flags | f1, f1)
        self.assertEqual(no_flags | f2, f2)
        self.assertEqual(no_flags | f01, f01)
        self.assertEqual(no_flags | f02, f02)
        self.assertEqual(no_flags | f12, f12)

        self.assertEqual(f0 | no_flags, f0)
        self.assertEqual(f0 | all_flags, all_flags)
        self.assertEqual(f0 | f0, f0)
        self.assertEqual(f0 | f1, f01)
        self.assertEqual(f0 | f2, f02)
        self.assertEqual(f0 | f01, f01)
        self.assertEqual(f0 | f02, f02)
        self.assertEqual(f0 | f12, all_flags)

        self.assertEqual(f01 | no_flags, f01)
        self.assertEqual(f01 | all_flags, all_flags)
        self.assertEqual(f01 | f0, f01)
        self.assertEqual(f01 | f1, f01)
        self.assertEqual(f01 | f2, all_flags)
        self.assertEqual(f01 | f01, f01)
        self.assertEqual(f01 | f02, all_flags)
        self.assertEqual(f01 | f12, all_flags)

        self.assertEqual(all_flags | no_flags, all_flags)
        self.assertEqual(all_flags | all_flags, all_flags)
        self.assertEqual(all_flags | f0, all_flags)
        self.assertEqual(all_flags | f1, all_flags)
        self.assertEqual(all_flags | f2, all_flags)
        self.assertEqual(all_flags | f01, all_flags)
        self.assertEqual(all_flags | f02, all_flags)
        self.assertEqual(all_flags | f12, all_flags)
项目:rex    作者:shellphish    | 项目源码 | 文件源码
def can_control_read(self, reg):
        flag_bits = CGC_FLAG_PAGE >> 12

        # shouldn't unset any already good bits
        orig_bits = self.orig_regs[reg] >> 12
        orig_matching_bits = (~(flag_bits ^ orig_bits)) & 0xfffff

        curr_best_matches = []

        for i in self.byte_analysis:
            ast_vals = [x["AST"] for x in self.byte_analysis[i].reg_vals.values()]
            for a in ast_vals:
                bits = a >> 12
                matching_bits = ~(flag_bits ^ bits) & 0xfffff
                if matching_bits & orig_matching_bits != orig_matching_bits:
                    continue
                else:
                    is_better_than_curr = True
                    for b in list(curr_best_matches):
                        matching_bits_b = ~(flag_bits ^ b) & 0xfffff
                        if matching_bits & matching_bits_b == matching_bits:
                            is_better_than_curr = False
                        elif matching_bits & matching_bits_b == matching_bits_b:
                            curr_best_matches.remove(b)
                    if is_better_than_curr:
                        curr_best_matches.append(bits)

        # verify it can be pointed at flag page
        all_bits = reduce(operator.__or__, [~(x ^ flag_bits) & 0xfffff for x in curr_best_matches])
        if bin(all_bits).count("1") < 20:
            return False

        match_dict = defaultdict(set)
        # now get all bytes that match each best
        for i in self.byte_analysis:
            for b in self.byte_analysis[i].reg_vals:
                a = self.byte_analysis[i].reg_vals[b][reg]
                bits = a >> 12
                if bits in curr_best_matches:
                    match_dict[bits].add((i, b))

        return True
项目:pov_fuzzing    作者:mechaphish    | 项目源码 | 文件源码
def can_control_read(self, reg):
        flag_bits = CGC_FLAG_PAGE >> 12

        # shouldn't unset any already good bits
        orig_bits = self.orig_regs[reg] >> 12
        orig_matching_bits = (~(flag_bits ^ orig_bits)) & 0xfffff

        curr_best_matches = []

        for i in self.byte_analysis:
            ast_vals = [x["AST"] for x in self.byte_analysis[i].reg_vals.values()]
            for a in ast_vals:
                bits = a >> 12
                matching_bits = ~(flag_bits ^ bits) & 0xfffff
                if matching_bits & orig_matching_bits != orig_matching_bits:
                    continue
                else:
                    is_better_than_curr = True
                    for b in list(curr_best_matches):
                        matching_bits_b = ~(flag_bits ^ b) & 0xfffff
                        if matching_bits & matching_bits_b == matching_bits:
                            is_better_than_curr = False
                        elif matching_bits & matching_bits_b == matching_bits_b:
                            curr_best_matches.remove(b)
                    if is_better_than_curr:
                        curr_best_matches.append(bits)

        # verify it can be pointed at flag page
        if len(curr_best_matches) > 0:
            all_bits = reduce(operator.__or__, [~(x ^ flag_bits) & 0xfffff for x in curr_best_matches])
        else:
            all_bits = 0
        if bin(all_bits).count("1") < 20:
            return False

        match_dict = defaultdict(set)
        # now get all bytes that match each best
        for i in self.byte_analysis:
            for b in self.byte_analysis[i].reg_vals:
                a = self.byte_analysis[i].reg_vals[b][reg]
                bits = a >> 12
                if bits in curr_best_matches:
                    match_dict[bits].add((i, b))

        return True
项目:registrasion    作者:chrisjrn    | 项目源码 | 文件源码
def _items(self, cart_status, category=None):
        ''' Aggregates the items that this user has purchased.

        Arguments:
            cart_status (int or Iterable(int)): etc
            category (Optional[models.inventory.Category]): the category
                of items to restrict to.

        Returns:
            [ProductAndQuantity, ...]: A list of product-quantity pairs,
                aggregating like products from across multiple invoices.

        '''

        if not isinstance(cart_status, Iterable):
            cart_status = [cart_status]

        status_query = (
            Q(productitem__cart__status=status) for status in cart_status
        )

        in_cart = Q(productitem__cart__user=self.user)
        in_cart = in_cart & reduce(operator.__or__, status_query)

        quantities_in_cart = When(
            in_cart,
            then="productitem__quantity",
        )

        quantities_or_zero = Case(
            quantities_in_cart,
            default=Value(0),
        )

        products = inventory.Product.objects

        if category:
            products = products.filter(category=category)

        products = products.select_related("category")
        products = products.annotate(quantity=Sum(quantities_or_zero))
        products = products.filter(quantity__gt=0)

        out = []
        for prod in products:
            out.append(ProductAndQuantity(prod, prod.quantity))
        return out