gcudm

API Documentation

gcudm

GeoComm Unified Data Model

gcudm.base

The GeoAlchemy declarative base for the data model is defined in this module along with some other helpful classes.

class gcudm.base.Base[source]

Bases: object

This is the model’s declarative base.

class gcudm.base.ModelMixin[source]

Bases: object

This is the parent class for all entity classes in the model. It defines common fields.

effective = Column(None, DateTime(), table=None)
expire = Column(None, DateTime(), table=None)
gcUnqId = Column(None, GUID(), table=None, primary_key=True, nullable=False)
classmethod geometry_type()[source]
srcLastEd = Column(None, DateTime(), table=None)
srcOfData = Column(None, String(), table=None)
srcUnqId = Column(None, String(), table=None)
updateDate = Column(None, DateTime(), table=None)
uploadAuth = Column(None, String(), table=None)

gcudm.docstrings

This module contains utilities for setting up docstrings

class gcudm.docstrings.ModelRstFormatter[source]

Bases: object

This class supports a number of specialized methods for creating reStructuredText docstrings for classes in this project.

cls2rst(cls, heading: str, preamble: str = None)[source]

Create a docstring for a model class.

Parameters:
  • cls – the class
  • heading – the heading for the reStructuredText section
  • preamble – everything that should preceed the generated docstring
Returns:

a reStructuredText docstring

col2section(table_name: str, column_name: str, meta: gcudm.meta.ColumnMeta) → str[source]

Format a block of reStructuredText to represent a column.

Parameters:
  • table_name – the name of the table to which the column belongs
  • column_name – the name of the column
  • meta – the column’s meta data
Returns:

a block of reStructuredText

enum2tbl(enum_cls: Type[Union[gcudm.meta.Requirement, gcudm.meta.Usage]], meta: gcudm.meta.ColumnMeta, excluded: Set[Any], indent: int = 1)[source]
static format_line(indent: int = 1, wrap: bool = True)[source]

Format a line of reStructuredText.

Parameters:
  • line – the line to format
  • indent – the indentation level of the formatted line
  • wrap – Should a newline be placed at the end?
Returns:

the formatted line

static simplify_docstring()[source]

Simplify a docstring by removing leading and trailing spaces,

Parameters:s
Returns:
gcudm.docstrings.model(label: str)[source]

Use this decorator to provide meta-data for your model class.

Parameters:label – the friendly label for the class

gcudm.meta

This module contains metadata objects to help with inline documentation of the model.

gcudm.meta.COLUMN_META_ATTR = '__meta__'

the property that contains metadata

class gcudm.meta.ColumnMeta[source]

Bases: tuple

Metadata for table columns.

calculated

Alias for field number 6

description

Alias for field number 1

get_enum(enum_cls: Type[Union[gcudm.meta.Requirement, gcudm.meta.Usage]]) → gcudm.meta.Requirement[source]

Get the current value of an attribute defined by an enumeration.

Parameters:enum_cls – the enumeration class
Returns:the value of the attribute
guaranteed

Alias for field number 5

label

Alias for field number 0

nena

Alias for field number 2

requirement

Alias for field number 3

usage

Alias for field number 4

class gcudm.meta.Requirement[source]

Bases: enum.IntFlag

This enumeration describes contracts with source data providers.

NONE = 0

data for the column is neither requested nor required

REQUESTED = 1

data for the column is requested

REQUIRED = 3

data for the column is required

class gcudm.meta.Usage[source]

Bases: enum.IntFlag

This enumeration describes how data may be used.

DISPLAY = 2

The data is displayed to users.

NONE = 0

The data is not used.

SEARCH = 1

The data is used for searching.

gcudm.meta.column(dtype: Any, meta: gcudm.meta.ColumnMeta, *args, **kwargs) → sqlalchemy.sql.schema.Column[source]

Create a GeoAlchemy Column annotated with metadata.

Parameters:
  • dtype – the GeoAlchemy column type
  • meta – the meta data
Returns:

a GeoAlchemy Column

gcudm.model

Say something descriptive about the ‘model’ module.

gcudm.model.load()[source]

Load the data model.

gcudm.modes

This module can be used to describe the mode in which the library is running.

gcudm.types

This module contains custom GeoAlchemy/SQLAlchemy types.

class gcudm.types.GUID(*args, **kwargs)[source]

Bases: sqlalchemy.sql.type_api.TypeDecorator

This is a Platform-independent GUID type that uses PostgreSQL’s UUID type ( and otherwise uses CHAR(32), storing as stringified hex values.

impl

alias of sqlalchemy.sql.sqltypes.CHAR

load_dialect_impl(dialect)[source]

Return a TypeEngine object corresponding to a dialect.

This is an end-user override hook that can be used to provide differing types depending on the given dialect. It is used by the TypeDecorator implementation of type_engine() to help determine what type should ultimately be returned for a given TypeDecorator.

By default returns self.impl.

process_bind_param(value, dialect)[source]

Receive a bound parameter value to be converted.

Subclasses override this method to return the value that should be passed along to the underlying TypeEngine object, and from there to the DBAPI execute() method.

The operation could be anything desired to perform custom behavior, such as transforming or serializing data. This could also be used as a hook for validating logic.

This operation should be designed with the reverse operation in mind, which would be the process_result_value method of this class.

Parameters:
  • value – Data to operate upon, of any type expected by this method in the subclass. Can be None.
  • dialect – the Dialect in use.
process_result_value(value, dialect)[source]

Receive a result-row column value to be converted.

Subclasses should implement this method to operate on data fetched from the database.

Subclasses override this method to return the value that should be passed back to the application, given a value that is already processed by the underlying TypeEngine object, originally from the DBAPI cursor method fetchone() or similar.

The operation could be anything desired to perform custom behavior, such as transforming or serializing data. This could also be used as a hook for validating logic.

Parameters:
  • value – Data to operate upon, of any type expected by this method in the subclass. Can be None.
  • dialect – the Dialect in use.

This operation should be designed to be reversible by the “process_bind_param” method of this class.