Skip to main content

SQLAlchemy ORM models for the ISPyB database

Project description

This provides a set of SQLAlchemy ORM models for the ISPyB database.

Installation

Install from pypi ispyb-models:

pip install ispyb-models

Basic Usage

from ispyb import models

dataCollection = models.DataCollection(
    ...
)

ses.add(dataCollection)
ses.commit()

...

datacollections = (
    ses.query(
        models.DataCollection
    ).filter(models.DataCollection.dataCollectionId == 1)
    ).first()
)

Generate a new version

To update the models you need to run the workflow Update Models through GitHub Actions panel. This will create a new branch with models matching the latest DB release and create a pull request for merge this branch into main. Before merging there are some things you need to do:

  • Make sure py-ispyb tests still pass with these new models
  • Update HISTORY.md to reflect the changes
  • Bump version number with bump2version

⚠️ Do not edit the output file yourself

The resulting _auto_db_schema.py should not be edited (other than automatic formatting with black or sorting of imports with isort). All models are imported into and accessed via the __init__.py. Any modifications, e.g. injecting additional relationships between models should be done here.

⚠️ [for local test] Manually update the DB schema

Checkout the specific tag for a given ispyb-database version:

$ git clone -b v1.18.1 https://github.com/ispyb/ispyb-database.git
$ # or, if you have an existing copy of the repository:
$ git checkout v1.18.1

Apply the schema patch in patches/circular_references.patch to avoid circular foreign key references:

$ patch -p1 < ispyb-models/patches/circular_references.patch

Then run the ispyb-database build.sh script to generate the database:

$ sh build.sh

Generate the models with sqlacodegen in src/ispyb/models/:

. generate_models.sh

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

ispyb-models-1.1.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

ispyb_models-1.1.0-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

Details for the file ispyb-models-1.1.0.tar.gz.

File metadata

  • Download URL: ispyb-models-1.1.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for ispyb-models-1.1.0.tar.gz
Algorithm Hash digest
SHA256 8f6c4d323125efb3e248166a4b3d302abfd9b5e8dd1e1ba1b5716969e8a46ec2
MD5 8f60920259660e9c3644a98fc6d99d74
BLAKE2b-256 bacd02bc790e1bdaef3b2a9186dc41c3e65571f75ca554fdd85348e91c3a488b

See more details on using hashes here.

File details

Details for the file ispyb_models-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: ispyb_models-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for ispyb_models-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ac0281b9972589e8ab06ac219d0d2ae7e9faa210204da3a3bbf76a03c99c7fa
MD5 cefaada2d9cfd53c9839b18c607099da
BLAKE2b-256 78c2eb23b7756db1f89a295b88dde67ecb52cf06d771542b514393f27628174f

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