liminal-orm 1.0.4__tar.gz → 1.0.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/PKG-INFO +6 -79
  2. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/README.md +5 -78
  3. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/migrate/utils.py +2 -4
  4. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/pyproject.toml +1 -1
  5. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/LICENSE.md +0 -0
  6. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/__init__.py +0 -0
  7. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/base_dropdown.py +0 -0
  8. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/base_operation.py +0 -0
  9. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/base_validation_filters.py +0 -0
  10. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/compare_operation.py +0 -0
  11. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/properties/base_field_properties.py +0 -0
  12. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/properties/base_schema_properties.py +0 -0
  13. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/base/str_enum.py +0 -0
  14. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/cli/cli.py +0 -0
  15. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/cli/controller.py +0 -0
  16. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/cli/live_test_dropdown_migration.py +0 -0
  17. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/cli/live_test_entity_schema_migration.py +0 -0
  18. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/connection/__init__.py +0 -0
  19. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/connection/benchling_connection.py +0 -0
  20. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/connection/benchling_service.py +0 -0
  21. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/dropdowns/api.py +0 -0
  22. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/dropdowns/compare.py +0 -0
  23. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/dropdowns/generate_files.py +0 -0
  24. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/dropdowns/operations.py +0 -0
  25. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/dropdowns/utils.py +0 -0
  26. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/api.py +0 -0
  27. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/compare.py +0 -0
  28. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/entity_schema_models.py +0 -0
  29. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/generate_files.py +0 -0
  30. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/operations.py +0 -0
  31. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/tag_schema_models.py +0 -0
  32. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/entity_schemas/utils.py +0 -0
  33. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/__init__.py +0 -0
  34. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_api_field_type.py +0 -0
  35. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_entity_type.py +0 -0
  36. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_field_type.py +0 -0
  37. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_folder_item_type.py +0 -0
  38. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_naming_strategy.py +0 -0
  39. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_report_level.py +0 -0
  40. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/enums/benchling_sequence_type.py +0 -0
  41. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/external/__init__.py +0 -0
  42. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/mappers.py +0 -0
  43. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/migrate/components.py +0 -0
  44. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/migrate/revision.py +0 -0
  45. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/migrate/revisions_timeline.py +0 -0
  46. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/base.py +0 -0
  47. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/base_model.py +0 -0
  48. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/column.py +0 -0
  49. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/mixins.py +0 -0
  50. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/relationship.py +0 -0
  51. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/schema_properties.py +0 -0
  52. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/orm/user.py +0 -0
  53. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/py.typed +0 -0
  54. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/tests/__init__.py +0 -0
  55. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/tests/conftest.py +0 -0
  56. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/tests/from benchling_sdk.py +0 -0
  57. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/tests/test_dropdown_compare.py +0 -0
  58. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/tests/test_entity_schema_compare.py +0 -0
  59. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/utils.py +0 -0
  60. {liminal_orm-1.0.4 → liminal_orm-1.0.5}/liminal/validation/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: liminal-orm
3
- Version: 1.0.4
3
+ Version: 1.0.5
4
4
  Summary: An ORM and toolkit that builds on top of Benchling's platform to keep your schemas and downstream code dependencies in sync.
5
5
  Home-page: https://github.com/dynotx/liminal-orm
6
6
  Author: DynoTx Open Source
@@ -27,7 +27,9 @@ Description-Content-Type: text/markdown
27
27
 
28
28
  # [Liminal ORM](#liminal-orm)
29
29
 
30
- Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchling's](https://www.benchling.com/) LIMS<sup>2</sup> platform and provides a simple framework to keep your upstream Benchling schemas and downstream dependencies in sync. Liminal provides an ORM framework using [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) along with a schema migration service inspired by [Alembic](https://alembic.sqlalchemy.org/en/latest/). This allows you to define your Benchling schemas in code and create a *single source of truth* that synchronizes with your upstream Benchling tenant(s) and downstream dependencies. Through one line CLI commands, Liminal enables a code-first approach for managing Benchling tenants and accessing Benchling data. With the schemas defined in code, you can also take advantage of the additional capabilities that the Liminal toolkit provides. This includes:
30
+ Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchling's](https://www.benchling.com/) LIMS<sup>2</sup> platform and provides a simple, code-first approach for synchronizing and managing your Benchling schemas. Check out the [**full documentation here**](https://dynotx.github.io/liminal-orm/)!
31
+
32
+ Liminal provides an ORM framework using [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) along with a schema migration service inspired by [Alembic](https://alembic.sqlalchemy.org/en/latest/). This allows you to define your Benchling schemas in code and create a *single source of truth* that synchronizes between your upstream Benchling tenant(s) and downstream dependencies. By creating a standard interface and through using one-line CLI<sup>3</sup> commands, Liminal enables a code-first approach for managing Benchling tenants and accessing Benchling data. With the schemas defined in code, you can also take advantage of the additional capabilities that the Liminal toolkit provides. This includes:
31
33
 
32
34
  - The ability to run migrations to your Benchling tenant(s) through an easy to use CLI.
33
35
  - One source of truth defined in code for your Benchling schema model that your many Benchling tenants can stay in sync with.
@@ -38,7 +40,7 @@ Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchli
38
40
 
39
41
  Benchling is an industry standard cloud platform for life sciences R&D. Liminal builds on top of Benchling's platform and assumes that you already have a Benchling tenant set up and have (or have access to) an admin user account. If not, learn more about getting started with Benchling [here](https://www.benchling.com/explore-benchling)!
40
42
 
41
- If you are a Benchling user, try out Liminal by following the [quickstart guide](./getting-started/prerequisites.md)! Reach out in the [Discussions](https://github.com/dynotx/liminal-orm/discussions) forum with any questions or to simply introduce yourself! If there is something blocking you from using Liminal or you're having trouble setting Liminal up, please share in [Issues](https://github.com/dynotx/liminal-orm/issues) or reach out directly (contact information below). You can expect responses within 48 hours :)
43
+ If you are a Benchling user, try out Liminal by following the [**Quick Start Guide**](https://dynotx.github.io/liminal-orm/getting-started/prerequisites/)! Reach out in the [Discussions](https://github.com/dynotx/liminal-orm/discussions) forum with any questions or to simply introduce yourself! If there is something blocking you from using Liminal or you're having trouble setting Liminal up, please share in [Issues](https://github.com/dynotx/liminal-orm/issues) or reach out directly (contact information below). You can expect responses within 48 hours :)
42
44
 
43
45
  Nirmit Damania is the creator and current maintainer of Liminal (I post Liminal updates to [Discussions](https://github.com/dynotx/liminal-orm/discussions) and my [LinkedIn](https://www.linkedin.com/in/nirmit-damania/)). Most importantly, **you** have the ability to influence the future of Liminal! Any feedback, positive or negative, is highly encouraged and will be used to steer the direction of Liminal. Refer to the [Contributing guide](https://github.com/dynotx/liminal-orm/blob/main/CONTRIBUTING.md) to learn more about how you can contribute to Liminal.
44
46
 
@@ -51,9 +53,6 @@ If you or your organization use Liminal, please consider adding yourself or your
51
53
 
52
54
  - [Overview](#liminal-orm)
53
55
  - [Getting Started](#getting-started)
54
- - [Installation](#installation)
55
- - [Setup](#setup)
56
- - [Migration](#migration)
57
56
  - [Toolkit](#toolkit)
58
57
  - [Mission](#mission)
59
58
  - [Community](#community)
@@ -66,79 +65,7 @@ If you or your organization use Liminal, please consider adding yourself or your
66
65
 
67
66
  Note: Liminal requires you to have (or have access to) an admin user account for your Benchling tenant. If you run into any issues, please reach out to us on the [Discussions](https://github.com/dynotx/liminal-orm/discussions/categories/q-a) forum and we'll be happy to help!
68
67
 
69
- ### [Installation](#installation)
70
-
71
- via pip: `pip install liminal-orm`
72
-
73
- via github: `python -m pip install git+https://github.com/dynotx/liminal-orm.git --ignore-installed`
74
-
75
- ### [Setup](#setup)
76
-
77
- 1. `cd` into the directory where you want to instantiate your *Liminal environment*. This will be the root directory where your schemas will live. Note: the Liminal CLI must always be run from within this root directory.
78
-
79
- 2. Run `liminal init` to initialize your Liminal project. This will create a liminal/ directory with an env.py file and a versions/ directory with an empty first revision file.
80
-
81
- 3. Populate the env.py file with your Benchling connection information, following the instructions in the file. For example:
82
-
83
- ```python
84
- from liminal.connection import BenchlingConnection
85
-
86
- PROD_CURRENT_REVISION_ID = "12b31776a755b"
87
-
88
- # It is highly recommended to use a secrets manager to store your credentials.
89
- connection = BenchlingConnection(
90
- tenant_name="pizzahouse-prod",
91
- tenant_alias="prod",
92
- current_revision_id_var_name="PROD_CURRENT_REVISION_ID",
93
- api_client_id="my-secret-api-client-id",
94
- api_client_secret="my-secret-api-client-secret",
95
- warehouse_connection_string="my-warehouse-connection-string",
96
- internal_api_admin_email="my-secret-internal-api-admin-email",
97
- internal_api_admin_password="my-secret-internal-api-admin-password",
98
- )
99
- ```
100
-
101
- 4. If your Benchling tenant has pre-existing schemas, run `liminal generate-files` to populate the root directory with the schema files. Your file structure should now look like this:
102
-
103
- ```text
104
- benchling/
105
- liminal/
106
- env.py
107
- versions/
108
- <revision_id>_initial_init_revision.py
109
- dropdowns/
110
- ...
111
- entity_schemas/
112
- ...
113
- ```
114
-
115
- 5. Add your schema imports to the env.py file. For example:
116
-
117
- ```python
118
- from pizzahouse.dropdowns import *
119
- from pizzahouse.entity_schemas import *
120
- ...
121
- ```
122
-
123
- 6. Set up is complete! You're now ready to start using your schemas defined in code as the single source of truth for your Benchling tenant(s). Refer to the [Migration](#migration) section to learn about how you make a change to your Benchling schema model. Refer to the [Toolkit](#toolkit) section to learn about the additional features the Liminal toolkit provides.
124
-
125
- ## [Migration](#migration)
126
-
127
- This section will walk you through the process of making a change to your Benchling schema model and syncing it to your Benchling tenant(s).
128
-
129
- 1. Make a change to your Benchling schema model!
130
-
131
- 2. Run `liminal autogenerate <benchling_tenant_name> <description_of_changes>` to generate a new revision file. For example: `liminal autogenerate prod "new oven schema"`. This will create a new revision file in the `versions/` directory. This revision file defines the set of steps (or "operations") that will be needed to make the targeted Benchling tenant up to date with the changes made in the schema model.
132
-
133
- If I have multiple Benchling tenants, do I have to run `autogenerate` for each tenant?
134
-
135
- No, Liminal only keeps a single thread of revision history that are linked together for easy upgrade/downgrade. In the case of multiple tenants that need to stay in sync together, we recommend pointing `autogenerate` at your production tenant, or the tenant that acts as the production environment. When ready, you can then apply the revision to all your tenants.
136
-
137
- 3. Review the generated revision file and set of operations to ensure that it is accurate.
138
-
139
- 4. Run `liminal upgrade <benchling_tenant_name> <upgrade_descriptor>` to migrate your Benchling tenant(s) to the new schema. For example: `liminal upgrade prod head`. This will apply the revision to the targeted Benchling tenant. For example: `liminal upgrade prod head` will apply the revision to the production tenant.
140
-
141
- 5. Check out your changes on your Benchling tenant(s)!
68
+ Check out this [Quick Start Guide](https://dynotx.github.io/liminal-orm/getting-started/prerequisites/) to get you setup with Liminal!
142
69
 
143
70
  ## [Toolkit](#toolkit)
144
71
 
@@ -1,6 +1,8 @@
1
1
  # [Liminal ORM](#liminal-orm)
2
2
 
3
- Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchling's](https://www.benchling.com/) LIMS<sup>2</sup> platform and provides a simple framework to keep your upstream Benchling schemas and downstream dependencies in sync. Liminal provides an ORM framework using [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) along with a schema migration service inspired by [Alembic](https://alembic.sqlalchemy.org/en/latest/). This allows you to define your Benchling schemas in code and create a *single source of truth* that synchronizes with your upstream Benchling tenant(s) and downstream dependencies. Through one line CLI commands, Liminal enables a code-first approach for managing Benchling tenants and accessing Benchling data. With the schemas defined in code, you can also take advantage of the additional capabilities that the Liminal toolkit provides. This includes:
3
+ Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchling's](https://www.benchling.com/) LIMS<sup>2</sup> platform and provides a simple, code-first approach for synchronizing and managing your Benchling schemas. Check out the [**full documentation here**](https://dynotx.github.io/liminal-orm/)!
4
+
5
+ Liminal provides an ORM framework using [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) along with a schema migration service inspired by [Alembic](https://alembic.sqlalchemy.org/en/latest/). This allows you to define your Benchling schemas in code and create a *single source of truth* that synchronizes between your upstream Benchling tenant(s) and downstream dependencies. By creating a standard interface and through using one-line CLI<sup>3</sup> commands, Liminal enables a code-first approach for managing Benchling tenants and accessing Benchling data. With the schemas defined in code, you can also take advantage of the additional capabilities that the Liminal toolkit provides. This includes:
4
6
 
5
7
  - The ability to run migrations to your Benchling tenant(s) through an easy to use CLI.
6
8
  - One source of truth defined in code for your Benchling schema model that your many Benchling tenants can stay in sync with.
@@ -11,7 +13,7 @@ Liminal ORM<sup>1</sup> is an open-source Python package that builds on [Benchli
11
13
 
12
14
  Benchling is an industry standard cloud platform for life sciences R&D. Liminal builds on top of Benchling's platform and assumes that you already have a Benchling tenant set up and have (or have access to) an admin user account. If not, learn more about getting started with Benchling [here](https://www.benchling.com/explore-benchling)!
13
15
 
14
- If you are a Benchling user, try out Liminal by following the [quickstart guide](./getting-started/prerequisites.md)! Reach out in the [Discussions](https://github.com/dynotx/liminal-orm/discussions) forum with any questions or to simply introduce yourself! If there is something blocking you from using Liminal or you're having trouble setting Liminal up, please share in [Issues](https://github.com/dynotx/liminal-orm/issues) or reach out directly (contact information below). You can expect responses within 48 hours :)
16
+ If you are a Benchling user, try out Liminal by following the [**Quick Start Guide**](https://dynotx.github.io/liminal-orm/getting-started/prerequisites/)! Reach out in the [Discussions](https://github.com/dynotx/liminal-orm/discussions) forum with any questions or to simply introduce yourself! If there is something blocking you from using Liminal or you're having trouble setting Liminal up, please share in [Issues](https://github.com/dynotx/liminal-orm/issues) or reach out directly (contact information below). You can expect responses within 48 hours :)
15
17
 
16
18
  Nirmit Damania is the creator and current maintainer of Liminal (I post Liminal updates to [Discussions](https://github.com/dynotx/liminal-orm/discussions) and my [LinkedIn](https://www.linkedin.com/in/nirmit-damania/)). Most importantly, **you** have the ability to influence the future of Liminal! Any feedback, positive or negative, is highly encouraged and will be used to steer the direction of Liminal. Refer to the [Contributing guide](https://github.com/dynotx/liminal-orm/blob/main/CONTRIBUTING.md) to learn more about how you can contribute to Liminal.
17
19
 
@@ -24,9 +26,6 @@ If you or your organization use Liminal, please consider adding yourself or your
24
26
 
25
27
  - [Overview](#liminal-orm)
26
28
  - [Getting Started](#getting-started)
27
- - [Installation](#installation)
28
- - [Setup](#setup)
29
- - [Migration](#migration)
30
29
  - [Toolkit](#toolkit)
31
30
  - [Mission](#mission)
32
31
  - [Community](#community)
@@ -39,79 +38,7 @@ If you or your organization use Liminal, please consider adding yourself or your
39
38
 
40
39
  Note: Liminal requires you to have (or have access to) an admin user account for your Benchling tenant. If you run into any issues, please reach out to us on the [Discussions](https://github.com/dynotx/liminal-orm/discussions/categories/q-a) forum and we'll be happy to help!
41
40
 
42
- ### [Installation](#installation)
43
-
44
- via pip: `pip install liminal-orm`
45
-
46
- via github: `python -m pip install git+https://github.com/dynotx/liminal-orm.git --ignore-installed`
47
-
48
- ### [Setup](#setup)
49
-
50
- 1. `cd` into the directory where you want to instantiate your *Liminal environment*. This will be the root directory where your schemas will live. Note: the Liminal CLI must always be run from within this root directory.
51
-
52
- 2. Run `liminal init` to initialize your Liminal project. This will create a liminal/ directory with an env.py file and a versions/ directory with an empty first revision file.
53
-
54
- 3. Populate the env.py file with your Benchling connection information, following the instructions in the file. For example:
55
-
56
- ```python
57
- from liminal.connection import BenchlingConnection
58
-
59
- PROD_CURRENT_REVISION_ID = "12b31776a755b"
60
-
61
- # It is highly recommended to use a secrets manager to store your credentials.
62
- connection = BenchlingConnection(
63
- tenant_name="pizzahouse-prod",
64
- tenant_alias="prod",
65
- current_revision_id_var_name="PROD_CURRENT_REVISION_ID",
66
- api_client_id="my-secret-api-client-id",
67
- api_client_secret="my-secret-api-client-secret",
68
- warehouse_connection_string="my-warehouse-connection-string",
69
- internal_api_admin_email="my-secret-internal-api-admin-email",
70
- internal_api_admin_password="my-secret-internal-api-admin-password",
71
- )
72
- ```
73
-
74
- 4. If your Benchling tenant has pre-existing schemas, run `liminal generate-files` to populate the root directory with the schema files. Your file structure should now look like this:
75
-
76
- ```text
77
- benchling/
78
- liminal/
79
- env.py
80
- versions/
81
- <revision_id>_initial_init_revision.py
82
- dropdowns/
83
- ...
84
- entity_schemas/
85
- ...
86
- ```
87
-
88
- 5. Add your schema imports to the env.py file. For example:
89
-
90
- ```python
91
- from pizzahouse.dropdowns import *
92
- from pizzahouse.entity_schemas import *
93
- ...
94
- ```
95
-
96
- 6. Set up is complete! You're now ready to start using your schemas defined in code as the single source of truth for your Benchling tenant(s). Refer to the [Migration](#migration) section to learn about how you make a change to your Benchling schema model. Refer to the [Toolkit](#toolkit) section to learn about the additional features the Liminal toolkit provides.
97
-
98
- ## [Migration](#migration)
99
-
100
- This section will walk you through the process of making a change to your Benchling schema model and syncing it to your Benchling tenant(s).
101
-
102
- 1. Make a change to your Benchling schema model!
103
-
104
- 2. Run `liminal autogenerate <benchling_tenant_name> <description_of_changes>` to generate a new revision file. For example: `liminal autogenerate prod "new oven schema"`. This will create a new revision file in the `versions/` directory. This revision file defines the set of steps (or "operations") that will be needed to make the targeted Benchling tenant up to date with the changes made in the schema model.
105
-
106
- If I have multiple Benchling tenants, do I have to run `autogenerate` for each tenant?
107
-
108
- No, Liminal only keeps a single thread of revision history that are linked together for easy upgrade/downgrade. In the case of multiple tenants that need to stay in sync together, we recommend pointing `autogenerate` at your production tenant, or the tenant that acts as the production environment. When ready, you can then apply the revision to all your tenants.
109
-
110
- 3. Review the generated revision file and set of operations to ensure that it is accurate.
111
-
112
- 4. Run `liminal upgrade <benchling_tenant_name> <upgrade_descriptor>` to migrate your Benchling tenant(s) to the new schema. For example: `liminal upgrade prod head`. This will apply the revision to the targeted Benchling tenant. For example: `liminal upgrade prod head` will apply the revision to the production tenant.
113
-
114
- 5. Check out your changes on your Benchling tenant(s)!
41
+ Check out this [Quick Start Guide](https://dynotx.github.io/liminal-orm/getting-started/prerequisites/) to get you setup with Liminal!
115
42
 
116
43
  ## [Toolkit](#toolkit)
117
44
 
@@ -33,9 +33,7 @@ def read_local_env_file(
33
33
  benchling_tenant == bc.tenant_name
34
34
  or benchling_tenant == bc.tenant_alias
35
35
  ):
36
- raise Exception(
37
- f"tenant name {benchling_tenant} does not match tenant name {bc.tenant_name} or alias {bc.tenant_alias} in liminal/env.py."
38
- )
36
+ continue
39
37
  if not bc.api_client_id or not bc.api_client_secret:
40
38
  raise Exception(
41
39
  "api_client_id and api_client_secret must be provided in BenchlingConnection in liminal/env.py. This is necessary for the migration service."
@@ -54,7 +52,7 @@ def read_local_env_file(
54
52
  f"CURRENT_REVISION_ID variable not found in liminal/env.py. Given variable name: {bc.current_revision_id_var_name}"
55
53
  ) from e
56
54
  raise Exception(
57
- "BenchlingConnection not found in liminal/env.py. Please update the env.py file with a correctly defined BenchlingConnection."
55
+ f"BenchlingConnection with tenant name or alias {benchling_tenant} not found in liminal/env.py. Please update the env.py file with a correctly defined BenchlingConnection."
58
56
  )
59
57
 
60
58
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "liminal-orm"
3
- version = "1.0.4"
3
+ version = "1.0.5"
4
4
  description = "An ORM and toolkit that builds on top of Benchling's platform to keep your schemas and downstream code dependencies in sync."
5
5
  authors = ["DynoTx Open Source <opensource@dynotx.com>"]
6
6
  readme = "README.md"
File without changes