Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Object a
- class Object a => Concrete a
- data SomeObject
- getType :: Object self => self -> IO Type
- isInstance :: (Object self, Object cls) => self -> cls -> IO Bool
- isSubclass :: (Object derived, Object cls) => derived -> cls -> IO Bool
- toObject :: Object a => a -> SomeObject
- cast :: (Object a, Concrete b) => a -> IO (Maybe b)
- hasAttribute :: Object self => self -> Unicode -> IO Bool
- getAttribute :: Object self => self -> Unicode -> IO SomeObject
- setAttribute :: (Object self, Object v) => self -> Unicode -> v -> IO ()
- deleteAttribute :: Object self => self -> Unicode -> IO ()
- print :: Object self => self -> Handle -> IO ()
- repr :: Object self => self -> IO Unicode
- ascii :: Object self => self -> IO Unicode
- string :: Object self => self -> IO Unicode
- bytes :: Object self => self -> IO Bytes
- callable :: Object self => self -> IO Bool
- call :: Object self => self -> Tuple -> Dictionary -> IO SomeObject
- callArgs :: Object self => self -> [SomeObject] -> IO SomeObject
- callMethod :: Object self => self -> Text -> Tuple -> Dictionary -> IO SomeObject
- callMethodArgs :: Object self => self -> Text -> [SomeObject] -> IO SomeObject
- data Comparison
- richCompare :: (Object a, Object b) => a -> b -> Comparison -> IO Bool
- toBool :: Object self => self -> IO Bool
- hash :: Object self => self -> IO Integer
- dir :: Object self => self -> IO List
- getIterator :: Object self => self -> IO SomeObject
Documentation
toObject, fromForeignPtr
Instances
class Object a => Concrete a Source #
concreteType
Instances
data SomeObject Source #
Instances
Object SomeObject Source # | |
Defined in CPython.Internal |
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.
toObject :: Object a => a -> SomeObject Source #
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
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
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)
.
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
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 #
Instances
Show Comparison Source # | |
Defined in CPython.Protocols.Object showsPrec :: Int -> Comparison -> ShowS # show :: Comparison -> String # showList :: [Comparison] -> ShowS # |
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.
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.