cpython-3.3.0: Bindings for libpython

Safe HaskellNone

CPython.Protocols.Object

Contents

Synopsis

Documentation

Types and casting

getType :: Object self => self -> IO TypeSource

Returns a Type object corresponding to the object type of self. On failure, throws SystemError. This is equivalent to the Python expression type(o).

isInstance :: (Object self, Object cls) => self -> cls -> IO BoolSource

Returns True if inst is an instance of the class cls or a subclass of cls, or False if not. On error, throws an exception. If cls is a type object rather than a class object, isInstance returns True if inst is of type cls. If cls is a tuple, the check will be done against every entry in cls. The result will be True when at least one of the checks returns True, otherwise it will be False. If inst is not a class instance and cls is neither a type object, nor a class object, nor a tuple, inst must have a __class__ attribute ߞ the class relationship of the value of that attribute with cls will be used to determine the result of this function.

Subclass determination is done in a fairly straightforward way, but includes a wrinkle that implementors of extensions to the class system may want to be aware of. If A and B are class objects, B is a subclass of A if it inherits from A either directly or indirectly. If either is not a class object, a more general mechanism is used to determine the class relationship of the two objects. When testing if B is a subclass of A, if A is B, isSubclass returns True. If A and B are different objects, Bߢs __bases__ attribute is searched in a depth-first fashion for A ߞ the presence of the __bases__ attribute is considered sufficient for this determination.

isSubclass :: (Object derived, Object cls) => derived -> cls -> IO BoolSource

Returns True if the class derived is identical to or derived from the class cls, otherwise returns False. In case of an error, throws an exception. If cls is a tuple, the check will be done against every entry in cls. The result will be True when at least one of the checks returns True, otherwise it will be False. If either derived or cls is not an actual class object (or tuple), this function uses the generic algorithm described above.

cast :: (Object a, Concrete b) => a -> IO (Maybe b)Source

Attempt to cast an object to some concrete class. If the object isn't an instance of the class or subclass, returns Nothing.

Attributes

hasAttribute :: Object self => self -> Unicode -> IO BoolSource

Returns True if self has an attribute with the given name, and False otherwise. This is equivalent to the Python expression hasattr(self, name)

getAttribute :: Object self => self -> Unicode -> IO SomeObjectSource

Retrieve an attribute with the given name from object self. Returns the attribute value on success, and throws an exception on failure. This is the equivalent of the Python expression self.name.

setAttribute :: (Object self, Object v) => self -> Unicode -> v -> IO ()Source

Set the value of the attribute with the given name, for object self, to the value v. THrows an exception on failure. This is the equivalent of the Python statement self.name = v.

deleteAttribute :: Object self => self -> Unicode -> IO ()Source

Delete an attribute with the given name, for object self. Throws an exception on failure. This is the equivalent of the Python statement del self.name.

Display and debugging

print :: Object self => self -> Handle -> IO ()Source

Print repr(self) to a handle.

repr :: Object self => self -> IO UnicodeSource

Compute a string representation of object self, or throw an exception on failure. This is the equivalent of the Python expression repr(self).

ascii :: Object self => self -> IO UnicodeSource

string :: Object self => self -> IO UnicodeSource

Compute a string representation of object self, or throw an exception on failure. This is the equivalent of the Python expression str(self).

bytes :: Object self => self -> IO BytesSource

Compute a bytes representation of object self, or throw an exception on failure. This is equivalent to the Python expression bytes(self).

Callables

callable :: Object self => self -> IO BoolSource

Determine if the object self is callable.

call :: Object self => self -> Tuple -> Dictionary -> IO SomeObjectSource

Call a callable Python object self, with arguments given by the tuple and named arguments given by the dictionary. Returns the result of the call on success, or throws an exception on failure. This is the equivalent of the Python expression self(*args, **kw).

callArgs :: Object self => self -> [SomeObject] -> IO SomeObjectSource

Call a callable Python object self, with arguments given by the list.

callMethod :: Object self => self -> Text -> Tuple -> Dictionary -> IO SomeObjectSource

Call the named method of object self, with arguments given by the tuple and named arguments given by the dictionary. Returns the result of the call on success, or throws an exception on failure. This is the equivalent of the Python expression self.method(args).

callMethodArgs :: Object self => self -> Text -> [SomeObject] -> IO SomeObjectSource

Call the named method of object self, with arguments given by the list. Returns the result of the call on success, or throws an exception on failure. This is the equivalent of the Python expression self.method(args).

Misc

data Comparison Source

Constructors

LT 
LE 
EQ 
NE 
GT 
GE 

Instances

richCompare :: (Object a, Object b) => a -> b -> Comparison -> IO BoolSource

Compare the values of a and b using the specified comparison. If an exception is raised, throws an exception.

toBool :: Object self => self -> IO BoolSource

Returns True if the object self is considered to be true, and False otherwise. This is equivalent to the Python expression not not self. On failure, throws an exception.

hash :: Object self => self -> IO IntegerSource

Compute and return the hash value of an object self. On failure, throws an exception. This is the equivalent of the Python expression hash(self).

dir :: Object self => self -> IO ListSource

This is equivalent to the Python expression dir(self), returning a (possibly empty) list of strings appropriate for the object argument, or throws an exception if there was an error.

getIterator :: Object self => self -> IO SomeObjectSource

This is equivalent to the Python expression iter(self). It returns a new iterator for the object argument, or the object itself if the object is already an iterator. Throws TypeError if the object cannot be iterated.