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-pyispyb-1.2.6.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ispyb_models_pyispyb-1.2.6-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file ispyb-models-pyispyb-1.2.6.tar.gz.

File metadata

  • Download URL: ispyb-models-pyispyb-1.2.6.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ispyb-models-pyispyb-1.2.6.tar.gz
Algorithm Hash digest
SHA256 310cf200399f084fde16e4477dc814454124955ce23a49978a7d456c60b6eaf4
MD5 86a0f203936d9ca4d2d23e47ecbb8813
BLAKE2b-256 8852cbfa1935b70e955744c83b170dedabcb8db9867a1dd385e662f76895ec1e

See more details on using hashes here.

File details

Details for the file ispyb_models_pyispyb-1.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for ispyb_models_pyispyb-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 740d02c30cabda77987d6dc43185f050fab9f3b3b82670ae13187e19902114a8
MD5 b2bd77617ff8d9c07c879b04a8613241
BLAKE2b-256 2df25077af0c68220f9abb4eb4f4d01d879e19ae2c2d7456bff991d36d983b5b

See more details on using hashes here.

Supported by

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