Simpycity Modules¶
-
simpycity.config.
port
= None¶ libpq connection parameter
-
simpycity.config.
database
= None¶ libpq connection parameter
-
simpycity.config.
debug
= False¶ print debug output
-
simpycity.config.
dsn
()¶ Return a libpq connection string using the variables defined in this file.
-
simpycity.config.
handle_factory
(*args, **kwargs)¶ Simpycity calls this to get a handle when it needs one. It may be useful to redefine this function with one that returns an existing instance of Handle, so that your application only opens one – or a controlled number of – database connections.
Returns: instance of simpycity.handle.Handle
-
simpycity.config.
host
= None¶ libpq connection parameter
-
simpycity.config.
password
= None¶ libpq connection parameter
-
simpycity.config.
port
= None libpq connection parameter
-
simpycity.config.
user
= None¶ libpq connection parameter
-
class
simpycity.handle.
Cursor
(*args, **kwargs)¶ Bases:
psycopg2.extras.DictCursor
Add per-row callback option to standard cursor.
-
class
simpycity.handle.
Handle
(dsn=None, config=None, isolation_level=None)¶ Bases:
object
A base Simpycity handle. a Handle is the wrapper object around a psycopg connection.
-
cursor
(*args, **kwargs)¶ Parameters: cursor_factory – Override default Cursor Returns: psycopg2 cursor
-
open
¶ Open the connection if not already open.
Returns: True
-
transaction
()¶ A generator function
-
-
class
simpycity.handle.
TypedCursor
(*args, **kwargs)¶ Bases:
simpycity.handle.Cursor
A cursor for result sets having only a single (typically composite) column. Rather than a row being a tuple, it is simply the value of the one column.
-
class
simpycity.core.
Function
(*args, **kwargs)¶ Bases:
simpycity.core.meta_query
Abstract a Postgresql function.
-
form_query
(columns, options={})¶ Parameters: - columns (str) – literal sql string for list of columns
- options (dict) – dict supporting a single key “direct” as in the constructor
Returns: sql string
-
-
exception
simpycity.core.
FunctionError
¶ Bases:
BaseException
Bare exception, used for naming purposes only.
-
class
simpycity.core.
FunctionSingle
(*args, **kwargs)¶ Bases:
simpycity.core.Function
A Postgresql function that returns a single value.
-
class
simpycity.core.
FunctionTyped
(*args, **kwargs)¶ Bases:
simpycity.core.Function
A Postgresql function that returns row(s) having only a single (typically composite) column
-
class
simpycity.core.
FunctionTypedSingle
(*args, **kwargs)¶ Bases:
simpycity.core.FunctionSingle
,simpycity.core.FunctionTyped
A Postgresql function that returns a single row having a single (typically composite) column
-
class
simpycity.core.
Property
(*args, **kwargs)¶ Bases:
simpycity.core.FunctionTypedSingle
Enjoys special handling in SimpleModel.__getattribute__ When a SimpleModel attribute references an instance of this class, its __call__ attribute is executed immediately and the result returned. That means in __init__, args must be empty, or the args must be mappable by name to the model’s table attribute.
-
class
simpycity.core.
Query
(name, args=[], handle=None, callback=None)¶ Bases:
simpycity.core.meta_query
select query access to a Postgresql table or view.
-
class
simpycity.core.
QuerySingle
(name, args=[], handle=None, callback=None)¶ Bases:
simpycity.core.Query
A select query on a table or view that returns a single row
-
class
simpycity.core.
QueryTyped
(*args, **kwargs)¶ Bases:
simpycity.core.Query
A select query on a table or view that returns composite row values
-
class
simpycity.core.
QueryTypedSingle
(*args, **kwargs)¶ Bases:
simpycity.core.QuerySingle
,simpycity.core.QueryTyped
A select query on a table or view that returns a single composite row value
-
class
simpycity.core.
Raw
(name, args=[], handle=None, callback=None)¶ Bases:
simpycity.core.meta_query
Execute arbitrary sql.
-
class
simpycity.core.
meta_query
(name, args=[], handle=None, callback=None)¶ Bases:
object
Base object for sql query-like objects For internal use only.
-
commit
()¶ Commits the query, using the internal self.handle.
-
form_query
(columns, options={})¶ Subclass function to create the query based on the columns provided at instance time. :param list columns: List of columns to return :param dict options: A dict, which responds to the following keys:
- columns: Alters what columns are selected by the query.
- handle: Overrides the instance handle with a customized version.
- callback: Override the instance callback with a customized version.
Returns: sql string
-
handle
(handle)¶ Permanently resets the handle.
-
is_property
¶ Override this for special handling in simpycity.model.SimpleModel.__getattribute__ If
True
, __call__ will be executed if a reference is made to a SimpleModel attribute that is this instance.
-
rollback
()¶ Rolls back the query, using the internal self.handle.
-
-
class
simpycity.model.
SimpleModel
(*args, **kwargs)¶ Bases:
simpycity.model.Construct
The basic simple model class. Implements the barest minimum of Model functionality to operate. SimpleModel expects one of:
- __load__ to be a FunctionSingle or QuerySingle that loads an instance, based on primary key, from the database.
- __lazyload__ to be a FunctionSingle that loads an instance from the database, depending on the existance of a value for loaded_indicator, which should be a member of table that will only be populated after the instance is fully loaded.
-
static
merge_base_attrs
(attrs)¶ Parameters: attrs (dict) – If one of the attrs is named “base_”, assume that attribute is an instance of SimpleModel mapped on a Postgresql composite type, and that the base_ instance is of a superclass of this class. Expand the attributes of the base_ type and assign to class attributes. psycopg2’s type casting uses namedtuple() and that forbids a name to start with underscore, so we end it with _ instead
-
pg_type
= None¶ If table is empty and this is a tuple of two members (schema, type) then register_composite() will calculate table by executing a query to Postgres at runtime.
-
classmethod
register_composite
(name, handle=None, factory=None)¶ Maps a Postgresql type to this class. If the class’s table attribute is empty, and the class has an attribute pg_type of tuple (schema, type), it is calculated and set by querying Postgres. Register inherited/inheriting classes in heirarchical order. Every time a SQL function returns a registered type (including array elements and individual columns, recursively), this class will be instantiated automatically.
The object attributes will be passed to the provided callable in a form of keyword arguments.
Parameters: - name (str) – the name of a PostgreSQL composite type, e.g. created using the CREATE TYPE command
- handle (simpycity.handle.Handle) –
- factory (psycopg2.extras.CompositeCaster) – use it to customize how to cast composite types
Returns: the registered CompositeCaster instance responsible for the conversion
-
save
()¶ DEPRECATED
Performs the __save__ method, if it has been declared. If not, this function raises a CannotSave exception. .save() does not implicitly commit the model. To commit, it must be done manually.
-
table
= []¶ Declare a list of columns to become class attributes. Or leave empty, and define pg_type.