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.
Files changed (86) hide show
  1. aibs_informatics_cdk_lib-0.0.3/LICENSE +33 -0
  2. aibs_informatics_cdk_lib-0.0.3/PKG-INFO +86 -0
  3. aibs_informatics_cdk_lib-0.0.3/README.md +27 -0
  4. aibs_informatics_cdk_lib-0.0.3/pyproject.toml +256 -0
  5. aibs_informatics_cdk_lib-0.0.3/setup.cfg +4 -0
  6. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/__init__.py +2 -0
  7. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/_version.py +1 -0
  8. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/__init__.py +0 -0
  9. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/__init__.py +0 -0
  10. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/base.py +571 -0
  11. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/pipeline/scripts/cicd-release.sh +119 -0
  12. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/cicd/target.py +79 -0
  13. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/__init__.py +0 -0
  14. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/__init__.py +0 -0
  15. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/core_utils.py +130 -0
  16. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/iam_utils.py +409 -0
  17. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/aws/sfn_utils.py +79 -0
  18. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/common/git.py +211 -0
  19. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/__init__.py +0 -0
  20. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/__init__.py +0 -0
  21. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/code_asset.py +247 -0
  22. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/assets/code_asset_definitions.py +198 -0
  23. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/base.py +117 -0
  24. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/__init__.py +0 -0
  25. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/defaults.py +73 -0
  26. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/infrastructure.py +442 -0
  27. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/instance_types.py +400 -0
  28. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py +488 -0
  29. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/monitoring.py +64 -0
  30. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/batch/types.py +29 -0
  31. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/__init__.py +11 -0
  32. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/__init__.py +0 -0
  33. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/lambda_.py +177 -0
  34. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/config_generators/sfn.py +145 -0
  35. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/dashboard.py +263 -0
  36. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/cw/types.py +77 -0
  37. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/dynamodb/__init__.py +0 -0
  38. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/dynamodb/table.py +138 -0
  39. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ec2/__init__.py +3 -0
  40. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ec2/network.py +99 -0
  41. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/efs/__init__.py +15 -0
  42. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/efs/file_system.py +436 -0
  43. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py +142 -0
  44. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/monitoring.py +315 -0
  45. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/__init__.py +8 -0
  46. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/bucket.py +79 -0
  47. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/s3/lifecycle_rules.py +64 -0
  48. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/__init__.py +0 -0
  49. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/compute.py +244 -0
  50. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/service/storage.py +54 -0
  51. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/__init__.py +0 -0
  52. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/__init__.py +2 -0
  53. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/base.py +534 -0
  54. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/batch.py +256 -0
  55. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/__init__.py +25 -0
  56. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/batch.py +422 -0
  57. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/data_sync.py +197 -0
  58. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/demand_execution.py +277 -0
  59. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/informatics/efs.py +310 -0
  60. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/fragments/lambda_.py +42 -0
  61. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/__init__.py +0 -0
  62. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/batch.py +264 -0
  63. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/common.py +116 -0
  64. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/states/s3.py +316 -0
  65. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/sfn/utils.py +175 -0
  66. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ssm/__init__.py +0 -0
  67. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/constructs_/ssm/tools.py +102 -0
  68. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/__init__.py +0 -0
  69. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/config.py +228 -0
  70. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/project/utils.py +181 -0
  71. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/py.typed +0 -0
  72. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stacks/__init__.py +0 -0
  73. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stacks/base.py +74 -0
  74. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stages/__init__.py +0 -0
  75. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib/stages/base.py +54 -0
  76. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/PKG-INFO +86 -0
  77. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/SOURCES.txt +84 -0
  78. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/dependency_links.txt +1 -0
  79. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/requires.txt +14 -0
  80. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_cdk_lib.egg-info/top_level.txt +2 -0
  81. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/__init__.py +0 -0
  82. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/app.py +72 -0
  83. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/__init__.py +0 -0
  84. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/assets.py +30 -0
  85. aibs_informatics_cdk_lib-0.0.3/src/aibs_informatics_core_app/stacks/core.py +56 -0
  86. 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
+ [![Build Status](https://github.com/AllenInstitute/aibs-informatics-cdk-lib/actions/workflows/build.yml/badge.svg)](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
+ [![Build Status](https://github.com/AllenInstitute/aibs-informatics-cdk-lib/actions/workflows/build.yml/badge.svg)](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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,2 @@
1
+ __version_info__ = (0, 0, 1)
2
+ __version__ = ".".join(map(str, __version_info__))
@@ -0,0 +1 @@
1
+ __version__ = "0.0.3"