That's it!  You're recommendation worked like a charm.  I certainly didn't 
appreciate the differences between Sage type and python number types. 
 Thank you John -  very much appreciated.  Paul

sage: *from* *py4j.java_gateway* *import* JavaGateway

sage: gateway = JavaGateway()

sage: random = gateway.jvm.java.util.Random()

sage: number1 = random.nextInt(int(*10*))

sage: number1

4

On Wednesday, August 2, 2017 at 3:37:15 PM UTC-4, John H Palmieri wrote:
>
> In Sage, "10" is a Sage integer, not a Python int. I am guessing that 
> gateway.jvm.java.util.Random.nextInt 
> expects a Python int for its input, and when it gets a Sage Integer, that 
> causes a problem. What happens if you replace "random.nextInt(10)" with 
> "random.nextInt(int(10))"?
>
>
>
>
> On Wednesday, August 2, 2017 at 12:16:54 PM UTC-7, Paul DesJardin wrote:
>>
>> Hi, I'm new to using Sage and trying to interface to java classes using 
>> py4j.  I've been successful using py4j using an anaconda installed version 
>> of python (on a mac) but I'm running into Attribute errors using Sage.  The 
>> one below is 'sage.rings.integer.Integer' object has no attribute 
>> '_get_object_id'.  I don't understand the reason for the differences and 
>> how to interpret the errors I'm receiving.  Any assistance or ideas of what 
>> is causing this would be very much appreciated.  Thank you, PD  
>>
>>
>>
>>
>> sage: *from* *py4j.java_gateway* *import* JavaGateway
>>
>> sage: gateway = JavaGateway()
>>
>> sage: random = gateway.jvm.java.util.Random()
>>
>> sage: number1 = random.nextInt(*10*)
>>
>>
>> ---------------------------------------------------------------------------
>>
>> AttributeError                            Traceback (most recent call 
>> last)
>>
>> <ipython-input-4-45af4cb476cf> in <module>()
>>
>> ----> 1 number1 = random.nextInt(Integer(10))
>>
>>
>>
>> /Applications/SageMath/local/lib/python2.7/site-packages/py4j/java_gateway.pyc
>>  
>> in __call__(self, *args)
>>
>> *   1149* 
>>
>> *   1150*     def __call__(self, *args):
>>
>> -> 1151         args_command, temp_args = self._build_args(*args)
>>
>> *   1152* 
>>
>> *   1153*         command = proto.CALL_COMMAND_NAME +\
>>
>>
>>
>> /Applications/SageMath/local/lib/python2.7/site-packages/py4j/java_gateway.pyc
>>  
>> in _build_args(self, *args)
>>
>> *   1119* 
>>
>> *   1120*         args_command = "".join(
>>
>> -> 1121             [get_command_part(arg, self.pool) for arg in 
>> new_args])
>>
>> *   1122* 
>>
>> *   1123*         return args_command, temp_args
>>
>>
>> /Applications/SageMath/local/lib/python2.7/site-packages/py4j/protocol.pyc 
>> in get_command_part(parameter, python_proxy_pool)
>>
>> *    288*             command_part += ";" + interface
>>
>> *    289*     else:
>>
>> --> 290         command_part = REFERENCE_TYPE + parameter._get_object_id
>> ()
>>
>> *    291* 
>>
>> *    292*     command_part += "\n"
>>
>>
>> /Applications/SageMath/src/sage/structure/element.pyx in 
>> sage.structure.element.Element.__getattr__ 
>> (/Applications/SageMath/src/build/cythonized/sage/structure/element.c:4230)
>> ()
>>
>> *    457*             AttributeError: 
>> 'LeftZeroSemigroup_with_category.element_class' object has no attribute 
>> 'blah_blah'
>>
>> *    458*         """
>>
>> --> 459         return self.getattr_from_category(name)
>>
>> *    460* 
>>
>> *    461*     cdef getattr_from_category(self, name):
>>
>>
>> /Applications/SageMath/src/sage/structure/element.pyx in 
>> sage.structure.element.Element.getattr_from_category 
>> (/Applications/SageMath/src/build/cythonized/sage/structure/element.c:4339)
>> ()
>>
>> *    470*         else:
>>
>> *    471*             cls = P._abstract_element_class
>>
>> --> 472         return getattr_from_other_class(self, cls, name)
>>
>> *    473* 
>>
>> *    474*     def __dir__(self):
>>
>>
>> /Applications/SageMath/src/sage/structure/misc.pyx in 
>> sage.structure.misc.getattr_from_other_class 
>> (/Applications/SageMath/src/build/cythonized/sage/structure/misc.c:1933)
>> ()
>>
>> *    297*         dummy_error_message.cls = type(self)
>>
>> *    298*         dummy_error_message.name = name
>>
>> --> 299         raise dummy_attribute_error
>>
>> *    300*     attribute = <object>attr
>>
>> *    301*     # Check for a descriptor (__get__ in Python)
>>
>>
>> AttributeError: 'sage.rings.integer.Integer' object has no attribute 
>> '_get_object_id'
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to