aibs-informatics-cdk-lib 0.0.3__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.
- aibs_informatics_cdk_lib-0.0.3/LICENSE +33 -0
- aibs_informatics_cdk_lib-0.0.3/PKG-INFO +86 -0
- aibs_informatics_cdk_lib-0.0.3/README.md +27 -0
- aibs_informatics_cdk_lib-0.0.3/pyproject.toml +256 -0
- aibs_informatics_cdk_lib-0.0.3/setup.cfg +4 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/__init__.py +2 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/_version.py +1 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/base.py +571 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/scripts/cicd-release.sh +119 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/target.py +79 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/core_utils.py +130 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/iam_utils.py +409 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/sfn_utils.py +79 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/git.py +211 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/code_asset.py +247 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/code_asset_definitions.py +198 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/base.py +117 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/defaults.py +73 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/infrastructure.py +442 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/instance_types.py +400 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py +488 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/monitoring.py +64 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/types.py +29 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/__init__.py +11 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/lambda_.py +177 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/sfn.py +145 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/dashboard.py +263 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/types.py +77 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/dynamodb/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/dynamodb/table.py +138 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ec2/__init__.py +3 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ec2/network.py +99 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/efs/__init__.py +15 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/efs/file_system.py +436 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py +142 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/monitoring.py +315 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/__init__.py +8 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/bucket.py +79 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/lifecycle_rules.py +64 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/compute.py +244 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/storage.py +54 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/__init__.py +2 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/base.py +534 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/batch.py +256 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/__init__.py +25 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/batch.py +422 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/data_sync.py +197 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/demand_execution.py +277 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/efs.py +310 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/lambda_.py +42 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/batch.py +264 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/common.py +116 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/s3.py +316 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/utils.py +175 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ssm/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ssm/tools.py +102 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/config.py +228 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/utils.py +181 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/py.typed +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stacks/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stacks/base.py +74 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stages/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stages/base.py +54 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/PKG-INFO +86 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/SOURCES.txt +84 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/dependency_links.txt +1 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/requires.txt +14 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/top_level.txt +2 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/app.py +72 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/__init__.py +0 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/assets.py +30 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/core.py +56 -0
- aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/demand_execution.py +195 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Allen Institute Software License – This software license is the 2-clause BSD
|
|
2
|
+
license plus a third clause that prohibits redistribution and use for
|
|
3
|
+
commercial purposes without further permission.
|
|
4
|
+
|
|
5
|
+
Copyright © 2024. Allen Institute. All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
list of conditions and the following disclaimer.
|
|
12
|
+
|
|
13
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
3. Redistributions and use for commercial purposes are not permitted without
|
|
18
|
+
the Allen Institute’s written permission. For purposes of this license,
|
|
19
|
+
commercial purposes are the incorporation of the Allen Institute's software
|
|
20
|
+
into anything for which you will charge fees or other compensation or use of
|
|
21
|
+
the software to perform a commercial service for a third party. Contact
|
|
22
|
+
terms@alleninstitute.org for commercial licensing opportunities.
|
|
23
|
+
|
|
24
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
25
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
26
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
27
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
28
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
29
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
30
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
31
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
32
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
33
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: aibs-informatics-cdk-lib
|
|
3
|
+
Version: 0.0.3
|
|
4
|
+
Summary: CDK Library for AIBS Informatics services
|
|
5
|
+
Author-email: AIBS Informatics Group <marmot@alleninstitute.onmicrosoft.com>
|
|
6
|
+
Maintainer-email: AIBS Informatics Group <marmot@alleninstitute.onmicrosoft.com>
|
|
7
|
+
License: Allen Institute Software License – This software license is the 2-clause BSD
|
|
8
|
+
license plus a third clause that prohibits redistribution and use for
|
|
9
|
+
commercial purposes without further permission.
|
|
10
|
+
|
|
11
|
+
Copyright © 2024. Allen Institute. All rights reserved.
|
|
12
|
+
|
|
13
|
+
Redistribution and use in source and binary forms, with or without
|
|
14
|
+
modification, are permitted provided that the following conditions are met:
|
|
15
|
+
|
|
16
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
17
|
+
list of conditions and the following disclaimer.
|
|
18
|
+
|
|
19
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
20
|
+
this list of conditions and the following disclaimer in the documentation
|
|
21
|
+
and/or other materials provided with the distribution.
|
|
22
|
+
|
|
23
|
+
3. Redistributions and use for commercial purposes are not permitted without
|
|
24
|
+
the Allen Institute’s written permission. For purposes of this license,
|
|
25
|
+
commercial purposes are the incorporation of the Allen Institute's software
|
|
26
|
+
into anything for which you will charge fees or other compensation or use of
|
|
27
|
+
the software to perform a commercial service for a third party. Contact
|
|
28
|
+
terms@alleninstitute.org for commercial licensing opportunities.
|
|
29
|
+
|
|
30
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
31
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
32
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
33
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
34
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
35
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
36
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
37
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
38
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
39
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
40
|
+
Project-URL: Documentation, https://.github.io/aibs-informatics-cdk-lib/
|
|
41
|
+
Project-URL: Homepage, https://github.com/AllenInstitute/aibs-informatics-cdk-lib/
|
|
42
|
+
Project-URL: Issues, https://github.com/AllenInstitute/aibs-informatics-cdk-lib/issues
|
|
43
|
+
Project-URL: Repository, https://github.com/AllenInstitute/aibs-informatics-cdk-lib/
|
|
44
|
+
Requires-Python: >=3.9
|
|
45
|
+
Description-Content-Type: text/markdown
|
|
46
|
+
License-File: LICENSE
|
|
47
|
+
Requires-Dist: aibs-informatics-aws-utils
|
|
48
|
+
Requires-Dist: aibs-informatics-core
|
|
49
|
+
Requires-Dist: aws-cdk-lib~=2.96
|
|
50
|
+
Requires-Dist: constructs~=10.0
|
|
51
|
+
Requires-Dist: pydantic~=2.0
|
|
52
|
+
Provides-Extra: dev
|
|
53
|
+
Requires-Dist: aibs-informatics-test-resources; extra == "dev"
|
|
54
|
+
Requires-Dist: boto3-stubs[batch,s3]; extra == "dev"
|
|
55
|
+
Provides-Extra: release
|
|
56
|
+
Requires-Dist: build; extra == "release"
|
|
57
|
+
Requires-Dist: bump-my-version; extra == "release"
|
|
58
|
+
Requires-Dist: wheel; extra == "release"
|
|
59
|
+
|
|
60
|
+
# AIBS Informatics CDK Library
|
|
61
|
+
|
|
62
|
+
[](https://github.com/AllenInstitute/aibs-informatics-cdk-lib/actions/workflows/build.yml)
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Overview
|
|
67
|
+
|
|
68
|
+
The AIBS Informatics CDK Library is a collection of AWS Cloud Development Kit (CDK) constructs and utilities designed to facilitate the deployment and management of cloud infrastructure for the Allen Institute for Brain Science. This library includes constructs for managing AWS Batch environments, Elastic File System (EFS) configurations, CloudWatch dashboards, and more. It aims to provide reusable and configurable components to streamline the development and deployment of cloud-based applications and services.
|
|
69
|
+
|
|
70
|
+
### Modules
|
|
71
|
+
|
|
72
|
+
- **Batch**: Constructs for setting up and managing AWS Batch environments, including job queues, compute environments, and monitoring.
|
|
73
|
+
- **EFS**: Utilities and constructs for configuring and managing Elastic File System (EFS) resources.
|
|
74
|
+
- **CloudWatch**: Tools for creating and managing CloudWatch dashboards and alarms.
|
|
75
|
+
- **Service Compute**: Constructs for defining compute resources, including Lambda functions and Batch compute environments.
|
|
76
|
+
- **State Machine Fragments**: Reusable fragments for AWS Step Functions, including batch job submission and data synchronization.
|
|
77
|
+
- **Assets**: Definitions and utilities for managing code assets, including Lambda functions and Docker images.
|
|
78
|
+
- **Core**: Base constructs and utilities used across the library, including environment configurations and common IAM policies.
|
|
79
|
+
|
|
80
|
+
## Contributing
|
|
81
|
+
|
|
82
|
+
Any and all PRs are welcome. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
|
83
|
+
|
|
84
|
+
## Licensing
|
|
85
|
+
|
|
86
|
+
This software is licensed under the Allen Institute Software License, which is the 2-clause BSD license plus a third clause that prohibits redistribution and use for commercial purposes without further permission. For more information, please visit [Allen Institute Terms of Use](https://alleninstitute.org/terms-of-use/).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# AIBS Informatics CDK Library
|
|
2
|
+
|
|
3
|
+
[](https://github.com/AllenInstitute/aibs-informatics-cdk-lib/actions/workflows/build.yml)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The AIBS Informatics CDK Library is a collection of AWS Cloud Development Kit (CDK) constructs and utilities designed to facilitate the deployment and management of cloud infrastructure for the Allen Institute for Brain Science. This library includes constructs for managing AWS Batch environments, Elastic File System (EFS) configurations, CloudWatch dashboards, and more. It aims to provide reusable and configurable components to streamline the development and deployment of cloud-based applications and services.
|
|
10
|
+
|
|
11
|
+
### Modules
|
|
12
|
+
|
|
13
|
+
- **Batch**: Constructs for setting up and managing AWS Batch environments, including job queues, compute environments, and monitoring.
|
|
14
|
+
- **EFS**: Utilities and constructs for configuring and managing Elastic File System (EFS) resources.
|
|
15
|
+
- **CloudWatch**: Tools for creating and managing CloudWatch dashboards and alarms.
|
|
16
|
+
- **Service Compute**: Constructs for defining compute resources, including Lambda functions and Batch compute environments.
|
|
17
|
+
- **State Machine Fragments**: Reusable fragments for AWS Step Functions, including batch job submission and data synchronization.
|
|
18
|
+
- **Assets**: Definitions and utilities for managing code assets, including Lambda functions and Docker images.
|
|
19
|
+
- **Core**: Base constructs and utilities used across the library, including environment configurations and common IAM policies.
|
|
20
|
+
|
|
21
|
+
## Contributing
|
|
22
|
+
|
|
23
|
+
Any and all PRs are welcome. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
|
24
|
+
|
|
25
|
+
## Licensing
|
|
26
|
+
|
|
27
|
+
This software is licensed under the Allen Institute Software License, which is the 2-clause BSD license plus a third clause that prohibits redistribution and use for commercial purposes without further permission. For more information, please visit [Allen Institute Terms of Use](https://alleninstitute.org/terms-of-use/).
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
## Build System Configurations
|
|
3
|
+
# https://setuptools.pypa.io/en/latest/setuptools.html#building-and-distributing-packages-with-setuptools
|
|
4
|
+
# -----------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
[build-system]
|
|
7
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
8
|
+
build-backend = "setuptools.build_meta"
|
|
9
|
+
|
|
10
|
+
[project]
|
|
11
|
+
name = "aibs-informatics-cdk-lib"
|
|
12
|
+
authors = [{ name = "AIBS Informatics Group", email = "marmot@alleninstitute.onmicrosoft.com"}]
|
|
13
|
+
maintainers = [{ name = "AIBS Informatics Group", email = "marmot@alleninstitute.onmicrosoft.com"}]
|
|
14
|
+
description = "CDK Library for AIBS Informatics services"
|
|
15
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
16
|
+
license = { file = "LICENSE" }
|
|
17
|
+
requires-python = ">=3.9"
|
|
18
|
+
dynamic = [
|
|
19
|
+
"version",
|
|
20
|
+
]
|
|
21
|
+
dependencies = [
|
|
22
|
+
"aibs-informatics-aws-utils",
|
|
23
|
+
"aibs-informatics-core",
|
|
24
|
+
"aws-cdk-lib~=2.96",
|
|
25
|
+
"constructs~=10.0",
|
|
26
|
+
"pydantic~=2.0",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[project.optional-dependencies]
|
|
30
|
+
dev = [
|
|
31
|
+
"aibs-informatics-test-resources",
|
|
32
|
+
"boto3-stubs[s3,batch]",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
release = [
|
|
36
|
+
"build",
|
|
37
|
+
"bump-my-version",
|
|
38
|
+
"wheel",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[tool.setuptools.dynamic]
|
|
42
|
+
version = {attr = "aibs_informatics_cdk_lib._version.__version__"}
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.package-data]
|
|
45
|
+
"*" = [
|
|
46
|
+
'py.typed',
|
|
47
|
+
'*.sh',
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[tool.setuptools.packages.find]
|
|
51
|
+
where = ["src"]
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
[project.urls]
|
|
55
|
+
Documentation = "https://.github.io/aibs-informatics-cdk-lib/"
|
|
56
|
+
Homepage = "https://github.com/AllenInstitute/aibs-informatics-cdk-lib/"
|
|
57
|
+
Issues = "https://github.com/AllenInstitute/aibs-informatics-cdk-lib/issues"
|
|
58
|
+
Repository = "https://github.com/AllenInstitute/aibs-informatics-cdk-lib/"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# -----------------------------------------------------------------------------
|
|
62
|
+
## Pyright Configurations
|
|
63
|
+
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md
|
|
64
|
+
# -----------------------------------------------------------------------------
|
|
65
|
+
|
|
66
|
+
[tool.pyright]
|
|
67
|
+
reportGeneralTypeIssues = false
|
|
68
|
+
typeCheckingMode = "basic"
|
|
69
|
+
|
|
70
|
+
# -----------------------------------------------------------------------------
|
|
71
|
+
## Coverage Configurations
|
|
72
|
+
# https://coverage.readthedocs.io/en/7.0.4/config.html#
|
|
73
|
+
# -----------------------------------------------------------------------------
|
|
74
|
+
|
|
75
|
+
[tool.coverage]
|
|
76
|
+
# Note: we use pytest-cov to generate coverage reports
|
|
77
|
+
# when running tests. but these coverage configs
|
|
78
|
+
# are read when doing so.
|
|
79
|
+
[tool.coverage.run]
|
|
80
|
+
branch = true
|
|
81
|
+
command_line = "coverage -m pytest"
|
|
82
|
+
data_file = "build/.coverage"
|
|
83
|
+
source = [
|
|
84
|
+
"src/"
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
[tool.coverage.report]
|
|
88
|
+
omit = [
|
|
89
|
+
"test/*"
|
|
90
|
+
]
|
|
91
|
+
exclude_lines = [
|
|
92
|
+
'pragma: no cover',
|
|
93
|
+
'raise NotImplementedError',
|
|
94
|
+
'if TYPE_CHECKING:',
|
|
95
|
+
'if typing.TYPE_CHECKING:',
|
|
96
|
+
'@overload',
|
|
97
|
+
'@typing.overload',
|
|
98
|
+
'\(Protocol\):$',
|
|
99
|
+
'typing.assert_never',
|
|
100
|
+
'assert_never',
|
|
101
|
+
]
|
|
102
|
+
skip_empty = true
|
|
103
|
+
|
|
104
|
+
[tool.coverage.html]
|
|
105
|
+
directory = "build/documentation/coverage"
|
|
106
|
+
|
|
107
|
+
[tool.coverage.xml]
|
|
108
|
+
output = "build/documentation/coverage.xml"
|
|
109
|
+
|
|
110
|
+
# -----------------------------------------------------------------------------
|
|
111
|
+
## pytest Configurations
|
|
112
|
+
# https://docs.pytest.org/en/7.2.x/reference/customize.html
|
|
113
|
+
# -----------------------------------------------------------------------------
|
|
114
|
+
|
|
115
|
+
[tool.pytest.ini_options]
|
|
116
|
+
minversion = "6.0"
|
|
117
|
+
addopts = [
|
|
118
|
+
"-ra",
|
|
119
|
+
"--verbose",
|
|
120
|
+
"--ignore=build/private",
|
|
121
|
+
# Coverage options should be managed in the .coveragerc file.
|
|
122
|
+
# The below configurations simply enable coverage and reporting.
|
|
123
|
+
"--cov",
|
|
124
|
+
"--cov-report=term-missing",
|
|
125
|
+
"--cov-report=html",
|
|
126
|
+
"--cov-report=xml",
|
|
127
|
+
"--cov-fail-under=0",
|
|
128
|
+
"--color=yes",
|
|
129
|
+
]
|
|
130
|
+
testpaths = [
|
|
131
|
+
"test",
|
|
132
|
+
]
|
|
133
|
+
cache_dir = "build/.pytest_cache"
|
|
134
|
+
|
|
135
|
+
# -----------------------------------------------------------------------------
|
|
136
|
+
## MyPy Configurations
|
|
137
|
+
# https://mypy.readthedocs.io/en/stable/config_file.html#example-pyproject-toml
|
|
138
|
+
# -----------------------------------------------------------------------------
|
|
139
|
+
|
|
140
|
+
[tool.mypy]
|
|
141
|
+
exclude = '''(?x)(
|
|
142
|
+
assets/
|
|
143
|
+
| build/
|
|
144
|
+
| cdk.out/
|
|
145
|
+
| setup.py$
|
|
146
|
+
| test/
|
|
147
|
+
)'''
|
|
148
|
+
|
|
149
|
+
cache_dir = "build/.mypy_cache"
|
|
150
|
+
|
|
151
|
+
# Using no incremental to avoid known issue with mypy and some packages:
|
|
152
|
+
# https://github.com/python/mypy/issues/9852
|
|
153
|
+
incremental = false
|
|
154
|
+
|
|
155
|
+
# Import Discovery
|
|
156
|
+
# https://mypy.readthedocs.io/en/stable/config_file.html#import-discovery
|
|
157
|
+
ignore_missing_imports = true
|
|
158
|
+
follow_imports = "silent"
|
|
159
|
+
no_site_packages = true
|
|
160
|
+
|
|
161
|
+
# Untyped definitions and calls
|
|
162
|
+
# https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls
|
|
163
|
+
# TODO: enable and fix errors
|
|
164
|
+
check_untyped_defs = true
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
# Miscellaneous strictness flags
|
|
168
|
+
# https://mypy.readthedocs.io/en/latest/config_file.html#miscellaneous-strictness-flags
|
|
169
|
+
allow_redefinition = true
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
# Configuring Error Messages
|
|
173
|
+
# https://mypy.readthedocs.io/en/stable/config_file.html#configuring-error-messages
|
|
174
|
+
show_error_codes = true
|
|
175
|
+
color_output = true
|
|
176
|
+
pretty = true
|
|
177
|
+
show_absolute_path = false
|
|
178
|
+
|
|
179
|
+
# Reporting Generation
|
|
180
|
+
# https://mypy.readthedocs.io/en/stable/config_file.html#report-generation
|
|
181
|
+
# [DEBUG] UNCOMMENT FOR DEBUG PURPOSES ONLY! Type coverage impacts test
|
|
182
|
+
# html_report = build/documentation/mypy/
|
|
183
|
+
# xml_report = build/documentation/mypy/
|
|
184
|
+
# cobertura_xml_report = build/documentation/mypy/
|
|
185
|
+
|
|
186
|
+
# None and Optional handling
|
|
187
|
+
# https://mypy.readthedocs.io/en/latest/config_file.html#none-and-optional-handling
|
|
188
|
+
strict_optional = false
|
|
189
|
+
|
|
190
|
+
# Miscellaneous
|
|
191
|
+
# https://mypy.readthedocs.io/en/latest/config_file.html#miscellaneous
|
|
192
|
+
# [DEBUG] If you need to better understand type error, increase verbosity
|
|
193
|
+
verbosity = 0
|
|
194
|
+
|
|
195
|
+
[[tool.mypy.overrides]]
|
|
196
|
+
module = [
|
|
197
|
+
"src.*",
|
|
198
|
+
"test.*"
|
|
199
|
+
]
|
|
200
|
+
ignore_errors = false
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
# -----------------------------------------------------------------------------
|
|
204
|
+
## Black Configurations
|
|
205
|
+
# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#what-on-earth-is-a-pyproject-toml-file
|
|
206
|
+
# -----------------------------------------------------------------------------
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
[tool.black]
|
|
210
|
+
line-length = 99
|
|
211
|
+
include = '\.pyi?$'
|
|
212
|
+
extend-exclude = '''
|
|
213
|
+
/(
|
|
214
|
+
# The following are specific to Black, you probably don't want those.
|
|
215
|
+
| cdk.out
|
|
216
|
+
)/
|
|
217
|
+
'''
|
|
218
|
+
|
|
219
|
+
# -----------------------------------------------------------------------------
|
|
220
|
+
## isort Configurations
|
|
221
|
+
# https://pycqa.github.io/isort/docs/configuration/config_files.html
|
|
222
|
+
# -----------------------------------------------------------------------------
|
|
223
|
+
|
|
224
|
+
[tool.isort]
|
|
225
|
+
# required for compatibility with black:
|
|
226
|
+
line_length = 99
|
|
227
|
+
profile = "black"
|
|
228
|
+
src_paths = ["src", "test"]
|
|
229
|
+
skip = [".venv", "build", "cdk.out"]
|
|
230
|
+
|
|
231
|
+
# -----------------------------------------------------------------------------
|
|
232
|
+
## bumpversion Configurations
|
|
233
|
+
# https://callowayproject.github.io/bump-my-version/
|
|
234
|
+
# -----------------------------------------------------------------------------
|
|
235
|
+
|
|
236
|
+
[tool.bumpversion]
|
|
237
|
+
allow_dirty = false
|
|
238
|
+
commit = true
|
|
239
|
+
commit_args = ""
|
|
240
|
+
current_version = "0.0.3"
|
|
241
|
+
ignore_missing_version = false
|
|
242
|
+
message = "Bump version: {current_version} → {new_version}"
|
|
243
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
244
|
+
regex = false
|
|
245
|
+
replace = "{new_version}"
|
|
246
|
+
search = "{current_version}"
|
|
247
|
+
serialize = ["{major}.{minor}.{patch}"]
|
|
248
|
+
sign_tags = false
|
|
249
|
+
tag = true
|
|
250
|
+
tag_message = "Bump version: {current_version} → {new_version}"
|
|
251
|
+
tag_name = "v{new_version}"
|
|
252
|
+
|
|
253
|
+
[[tool.bumpversion.files]]
|
|
254
|
+
filename = "src/aibs_informatics_cdk_lib/_version.py"
|
|
255
|
+
search = "__version__ = \"{current_version}\""
|
|
256
|
+
replace = "__version__ = \"{new_version}\""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.3"
|
|
File without changes
|
|
File without changes
|