Skip to main content

Python small, little, mini, tiny, micro Object-Relational Mapping (ORM)

Project description

Perseus MicrORM

Majormode Perseus MicrORM Python Library is a small, little, mini, tiny, micro Object-Relational Mapping (ORM).

MicrORM is not a object-relational mapping in the sense it maps Pyth objects to a Relational DataBase Management System (RDBMS), but in the sense it maps results of SQL queries, executed on a RDBMS, to Python objects.

Installation

To install Perseus MicrORM Python Library, simply enter the follow command line:

pip install perseus-microrm-library

Usage

import uuid

from majormode.perseus.utils import cast
from majormode.perseus.utils.rdbms import RdbmsConnection


RDBMS_CONNECTION_PROPERTIES = {
    None: {
        'rdbms_hostname': 'localhost',
        'rdbms_port': 5432,
        'rdbms_database_name': 'foo',
        'rdbms_account_username': 'dbo',
        'rdbms_account_password': ''
    }
}

PLACE_IDS = [
    uuid.UUID('54879ffc-a1ec-11e8-85bd-0008a20c190f'),
    uuid.UUID('9025d1c8-a1ec-11e8-9e29-0007cb040bcc')
]

with RdbmsConnection.acquire_connection(
        RDBMS_CONNECTION_PROPERTIES,
        auto_commit=False,
        connection=None) as connection:
    cursor = connection.execute(
        """
        SELECT place_id,
               ST_X(location) AS longitude,
               ST_Y(location) AS latitude,
               ST_Z(location) AS altitude,
               accuracy,
               creation_time
          FROM place
          WHERE place_id IN %[place_ids]s
        """,
        {
            'place_ids': PLACE_IDS 
        })
    rows = cursor.fetch_all()

    places = [
        row.get_object({
            'place_id': cast.string_to_uuid,
            'creation_time': cast.string_to_timestamp})
        for row in cursor.fetch_all()]

    for place in places:
        print(place.place_id, place.longitude, place.latitude)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perseus_microrm_library-1.3.9.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

perseus_microrm_library-1.3.9-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file perseus_microrm_library-1.3.9.tar.gz.

File metadata

  • Download URL: perseus_microrm_library-1.3.9.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Darwin/23.5.0

File hashes

Hashes for perseus_microrm_library-1.3.9.tar.gz
Algorithm Hash digest
SHA256 52f88046785f1664d620bf85dce6a09587f4b4d5a013be78ed5b2d0b8bf3a6ac
MD5 9e52ecfdc59fda2ce24a28eefb83b651
BLAKE2b-256 25aae66cdb4ef4cde3d45ecce3febb94d5d4caa5d2e64f25971418b05908655b

See more details on using hashes here.

File details

Details for the file perseus_microrm_library-1.3.9-py3-none-any.whl.

File metadata

File hashes

Hashes for perseus_microrm_library-1.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 5c9e6283b31fe75ff42cf7bb4d586770828536fa9b90f0462b23dd461e495ece
MD5 0b91f67da40ced05a53ffe530f8b2c86
BLAKE2b-256 0bba2daaaf657987a28b870ae85d2bdccaee5868bb5ba790e33b69ecdcfd197e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page