Ticket #13386: trac_13386-avoid_numpy_loading.patch

File trac_13386-avoid_numpy_loading.patch, 1.7 KB (added by whuss, 9 years ago)
  • sage/rings/integer.pyx

    # HG changeset patch
    # User Wilfried Huss <huss@math.tugraz.at>
    # Date 1359034093 -3600
    # Node ID 8f246466abc426d3d0be1d4a30d21fe583004b81
    # Parent  aee8d17bec00baac65a5039f2e80b40a27b4cb50
    trac 13386: comparison of Sage integers with numpy integers
    
    diff --git a/sage/rings/integer.pyx b/sage/rings/integer.pyx
    a b  
    736736                mpz_set(self.value, tmp.value)
    737737
    738738            else:
    739                 import numpy
    740                 if isinstance(x, numpy.integer):
    741                     mpz_set_pylong(self.value, x.__long__())
    742                     return
    743                    
     739                if type(x).__module__ == 'numpy':
     740                    import numpy
     741                    if PY_TYPE_CHECK(x, numpy.integer):
     742                        mpz_set_pylong(self.value, x.__long__())
     743                        return
     744
    744745                elif PY_TYPE_CHECK(x, Element):
    745746                    try:
    746747                        lift = x.lift()
     
    967968                # True
    968969                # sage: 12 == numpy.int32(12)
    969970                # False
    970                 import numpy
    971                 if PY_TYPE_CHECK(right, numpy.integer):
    972                     c = mpz_cmp_si((<Integer>left).value, right.__long__())
     971                if type(right).__module__ == 'numpy':
     972                    import numpy
     973                    if PY_TYPE_CHECK(right, numpy.integer):
     974                        c = mpz_cmp_si((<Integer>left).value, right.__long__())
     975                    else:
     976                        return (<sage.structure.element.Element>left)._richcmp(right, op)
    973977                else:
    974978                    return (<sage.structure.element.Element>left)._richcmp(right, op)
    975979