Glossary¶
- ad hoc script¶
Python script (text) file used for ad-hoc automation etc. See also Ad Hoc Scripts.
- app¶
Depending on context, may refer to the software application overall, or the app name, or the app handler.
- app database¶
The main database used by the app. There is normally just one database (for simple apps) which uses PostgreSQL for the backend. The app database contains the settings table as well as data models.
For more info see App Database.
- app dir¶
Folder containing app-specific config files, log files, etc. Usually this is named
app
and is located at the root of the virtual environment.Can be retrieved via
get_appdir()
.- app enum¶
Python module whose namespace contains all the “enum” values used by the app. Available on the app handler as
enum
.- app handler¶
Python object representing the core handler for the app. There is normally just one “global” app handler; see also App Handler.
- app model¶
Python module whose namespace contains all the data models used by the app.
- app name¶
This refers to the canonical name for the underlying app/config system. It does not refer to the overall app; contrast with app title.
In most cases (i.e. by default) this will simply be
wutta
. This value affects the naming conventions for config files as well as setting names etc.The primary reason for this abstraction is so that the Rattail Project could leverage the Wutta config logic without having to rewrite all config files in the wild.
See also
appname
.- app provider¶
A provider which pertains to the app handler. See App Providers.
- app title¶
Human-friendly name for the app (e.g. “Wutta Poser”).
See also the app name which serves a very different purpose.
- auth handler¶
A handler responsible for user authentication and authorization (login, permissions) and related things.
See also
AuthHandler
.- batch¶
This refers to a process whereby bulk data operations may be performed, with preview and other tools to allow the user to refine as needed before “executing” the batch.
The term “batch” may refer to such a feature overall, or the data model used, or the specific data for a single batch, etc.
See also batch handler and batch row, and the
BatchMixin
base class.- batch handler¶
This refers to a handler meant to process a given type of batch.
There may be multiple handlers registered for a given batch type, but (usually) only one will be configured for use.
- batch row¶
A row of data within a batch.
May also refer to the data model class used for such a row.
See also the
BatchRowMixin
base class.- batch type¶
This term is used to distinguish batches according to which underlying table is used to store their data, essentially.
For instance a “pricing batch” would use one table, whereas an “inventory batch” would use another. And each “type” would be managed by its own batch handler.
The batch type is set on the model class but is also available on the handler:
- command¶
A top-level command line interface for the app. Note that top-level commands don’t usually “do” anything per se, and are mostly a way to group subcommands. See also Command Line.
- config¶
Depending on context, may refer to any of: config file, config object, config setting. See also Configuration.
- config extension¶
A registered extension for the config object. What happens is, a config object is created and then extended by each of the registered config extensions.
The intention is that all config extensions will have been applied before the app handler is created.
- config file¶
A file which contains config settings. See also Config Files.
- config object¶
Python object representing the full set of config settings for the app. Usually it gets some of the settings from config files, but it may also get some from the settings table. See also Config Object.
- config setting¶
The value of a setting as obtained from a config object. Depending on context, sometimes this refers specifically to values obtained from the settings table as opposed to config file. See also Config Settings.
- data model¶
Usually, a Python class which maps to a database table.
The app (assuming it has an app database) will have an “official” set of data models, represented as the app model.
- database¶
Generally refers to a relational database which may be queried using SQL. More specifically, one supported by SQLAlchemy.
Most apps will have at least one app database. See also Databases.
- db handler¶
The handler responsible for various operations involving the app database (and possibly other databases).
See also the
DatabaseHandler
base class.- db session¶
The “session” is a SQLAlchemy abstraction for an open database connection, essentially.
In practice this generally refers to a
Session
instance.- email handler¶
The handler responsible for sending email on behalf of the app.
Default is
EmailHandler
.- email key¶
String idenfier for a certain email type. Each email key must be unique across the app, so the correct template files and other settings are used when sending etc.
- email module¶
This refers to a Python module which contains email setting definitions.
- email setting¶
This refers to the settings for a particular email type, i.e. its sender and recipients, subject etc. So each email type has a “collection” of settings, and that collection is referred to simply as an “email setting” in the singular.
- email template¶
Usually this refers to the HTML or TXT template file, used to render the message body when sending an email.
- email type¶
The app is capable of sending many types of emails, e.g. daily reports, alerts of various kinds etc. Each “type” of email then will have its own template(s) and sender/recipient settings etc. See also email key.
- entry point¶
This refers to a “setuptools-style” entry point specifically, which is a mechanism used to register “plugins” and the like. This lets the app / config discover features dynamically. Most notably used to register commands and subcommands.
For more info see the Python Packaging User Guide.
- handler¶
Similar to a “plugin” concept but only one handler may be used for a given purpose. See also Handlers.
- install handler¶
The handler responsible for installing a new instance of the app.
Default is
InstallHandler
.- package¶
Generally refers to a proper Python package, i.e. a collection of modules etc. which is installed via
pip
. See also Package Installation.- provider¶
Python object which “provides” extra functionality to some portion of the app. Similar to a “plugin” concept; see Providers.
- settings table¶
Table in the app database which is used to store config settings. See also Settings Table.
- spec¶
As the term is used in Wutta Project context, this refers to a string designating the import path to a particular object (class, function etc.).
Also the term implies a certain format, namely a dotted module path followed by colon (
:
), then object name.For instance,
wuttjamaican.app:AppHandler
is the spec string for thewuttjamaican.app.AppHandler
class (and note, the hyperlink does not use colon, but our “spec” always does).See also
load_object()
(on the app handler) which can return any object from spec.- subcommand¶
A top-level command may expose one or more subcommands, for the overall command line interface. Subcommands are usually the real workhorse; each can perform a different function with a custom arg set. See also Command Line.
- virtual environment¶
This term comes from the broader Python world and refers to an isolated way to install packages. See also Virtual Environment.