Skip to main content

Ogma

According to legend, he is the inventor of Ogham, the runic language in which Irish Gaelic was first written.

Ogma is a database access code generator for Java. It will take your database schema definition written in a Python-based DSL and generate (with jOOQ, among others) the necessary Java code to perform typed queries on that database.

It can also generate the necessary DDL to create the database structure according to spec.

Ogma has been written for MySQL and MariaDB, but could be made to work with other engines that are both supported by SQLAlchemy and jOOQ.

How to install

Just run the usual for a Python package:

pip install ogma

Then you can run ogma.

Code generation and other tools

Ogma obviously generates code, but it can also do other things. The tool is organized with subcommands.

Generation

The generate subcommand is used to generate Java code from the model file. The model file is a Python with some restrictions and additions:

  1. There is an implicit import of everything from modelutils
  2. No imports are allowed

For Developers

Structure

  • modelutils contains all the code that is imported into the database model files and that internally deals with model operations.
  • commands contains the entry points for the tool's subcommands
  • templates contains mustache templates for jOOQ's configuration and additional generated Java code

Metadata

Release files for ogma 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ogma 0.1.0
File Size Uploaded Provenance Actions
ogma-0.1.0.tar.gz 20.8 kB Without provenance Details for ogma-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ogma 0.1.0
File Interpreter ABI Platform Actions
ogma-0.1.0-py3-none-any.whl Python 3 none any Details for ogma-0.1.0-py3-none-any.whl

Total release size: 47.0 kB

Release files / ogma-0.1.0.tar.gz

Download URL ogma-0.1.0.tar.gz
Size 20.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3502eb30f7ed0986ecd349e76f2bdf9fd50128000ff58f8349f28651fd3744a8
BLAKE2b-256 checksum
How to use checksums
3f2720bb14202766109a240499d6d44e658dfc992e81f4aac9f75aafeefb521f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.16 CPython/3.6.8 Linux/4.18.0-22-generic

Release files / ogma-0.1.0-py3-none-any.whl

Download URL ogma-0.1.0-py3-none-any.whl
Size 26.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ebd4571028ecc240b5f723861ca70e8c80dd6ff16278b517e854cc375e471c9
BLAKE2b-256 checksum
How to use checksums
cde38e0b964f969d5dad66633fef5bdf5bc9ff9d82cc9653f1150920327ffdb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.16 CPython/3.6.8 Linux/4.18.0-22-generic

Security for ogma 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page