cpython-3.4.0: Bindings for libpython

Safe HaskellNone
LanguageHaskell98

CPython.Protocols.Object

Contents

Synopsis

Documentation

class Object a where Source #

Minimal complete definition

toObject, fromForeignPtr

Methods

toObject :: a -> SomeObject Source #

Instances

Object SomeIterator Source # 
Object SomeSequence Source # 
Object SomeMapping Source # 
Object Tuple Source # 
Object List Source # 
Object Dictionary Source # 
Object Type Source # 
Object SomeObject Source # 
Object Proxy Source # 
Object Reference Source # 
Object Slice Source # 
Object FrozenSet Source # 
Object Set Source # 
Object Method Source # 
Object CallableIterator Source # 
Object SequenceIterator Source # 
Object InstanceMethod Source # 
Object Float Source # 
Object Complex Source # 
Object Code Source # 
Object Function Source # 
Object Cell Source # 
Object Capsule Source # 
Object Bytes Source # 
Object Unicode Source # 
Object Integer Source # 
Object Module Source # 
Object SomeNumber Source # 
Object ByteArray Source # 

Types and casting

getType :: Object self => self -> IO Type Source #

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 Bool Source #

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 Bool Source #

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 Bool Source #

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 SomeObject Source #

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 Unicode Source #

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 Unicode Source #

string :: Object self => self -> IO Unicode Source #

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 Bytes Source #

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 Bool Source #

Determine if the object self is callable.

call :: Object self => self -> Tuple -> Dictionary -> IO SomeObject Source #

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 SomeObject Source #

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

callMethod :: Object self => self -> Text -> Tuple -> Dictionary -> IO SomeObject Source #

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 SomeObject Source #

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 

richCompare :: (Object a, Object b) => a -> b -> Comparison -> IO Bool Source #

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

toBool :: Object self => self -> IO Bool Source #

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 Integer Source #

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 List Source #

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 SomeObject Source #

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.