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.mdto 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
Metadata
Release files for ispyb-models 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ispyb-models-1.1.0.tar.gz | 36.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ispyb_models-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.3 kB
Release files / ispyb-models-1.1.0.tar.gz
| Download URL | ispyb-models-1.1.0.tar.gz |
|---|---|
| Size | 36.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f6c4d323125efb3e248166a4b3d302abfd9b5e8dd1e1ba1b5716969e8a46ec2
|
|
BLAKE2b-256 checksum How to use checksums |
bacd02bc790e1bdaef3b2a9186dc41c3e65571f75ca554fdd85348e91c3a488b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|
Release files / ispyb_models-1.1.0-py3-none-any.whl
| Download URL | ispyb_models-1.1.0-py3-none-any.whl |
|---|---|
| Size | 36.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ac0281b9972589e8ab06ac219d0d2ae7e9faa210204da3a3bbf76a03c99c7fa
|
|
BLAKE2b-256 checksum How to use checksums |
78c2eb23b7756db1f89a295b88dde67ecb52cf06d771542b514393f27628174f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|
Security for ispyb-models 1.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.