Skip to content

Commit dd58397

Browse files
ejfineclaude
andauthored
Copier update: Pyrefly implicit reexport for non libraries (#112)
Pull in upstream template changes Do _not_ let the suppression of that rule cascade into the pyrefly config for the actual library repo itself <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated development tools and generated project templates to use newer supported versions. * Raised minimum supported versions for several project dependencies. * Adjusted type-checking settings: existing projects now allow implicit public re-exports, while newly generated projects require them to be explicitly declared. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 20c25d3 commit dd58397

8 files changed

Lines changed: 32 additions & 29 deletions

File tree

‎.config/.copier-answers.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Changes here will be overwritten by Copier
2-
_commit: v0.1.9
2+
_commit: v0.1.10
33
_src_path: gh:LabAutomationAndScreening/copier-base-template.git
44
copier_answers_directory: .config
55
description: Copier template for creating Python libraries and executables

‎.config/pyrefly.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ ignore-errors-in-generated-code = true # not sure yet how effective this is
3333
no-access = "ignore" # (already covered by ruff SLF001)
3434
untyped-import = "ignore" # equivalent of reportMissingTypeStubs=false in pyright
3535
unannotated-return = "ignore" # ruff ANN2xx already requires this, but with suppress-none-returning so that None-returning functions don't need the noise. pyrefly has no equivalent option---the error kind is all-or-nothing.
36+
implicit-reexport = "ignore" # only matters for distributed libraries, whose public API must be deliberate; everything else is imported solely from within its own repo, where requiring __all__ or redundant aliases is pure bookkeeping
3637

3738
[[sub-config]]
3839
matches = "../**/tests/**"

‎.devcontainer/devcontainer.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
// Python
3131
"-ms-python.vscode-pylance", // pyrefly is the language server for this project; ms-python.python auto-installs Pylance via its extension pack, and Pylance then warns on every boot that it's disabled
3232
"ms-python.python@2026.5.2026052901",
33-
"meta.pyrefly@1.3.1",
33+
"meta.pyrefly@1.3.2",
3434
"ms-vscode-remote.remote-containers@0.414.0",
3535
"charliermarsh.ruff@2026.84.0",
3636

@@ -67,5 +67,5 @@
6767
"initializeCommand": "sh .devcontainer/initialize-command.sh",
6868
"onCreateCommand": "sh .devcontainer/on-create-command.sh",
6969
"postStartCommand": "sh .devcontainer/post-start-command.sh"
70-
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 6950b8fc # spellchecker:disable-line
70+
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 0b1abb95 # spellchecker:disable-line
7171
}

‎extensions/context.py‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,32 @@ def hook( # noqa: PLR0915 # yes, this is a lot of statements, but it's all just
3232
context["copier_version"] = "==9.18.2"
3333
context["copier_template_extensions_version"] = "==0.3.3"
3434
context["sphinx_version"] = "9.0.4"
35-
context["pulumi_version"] = ">=3.261.0"
36-
context["pulumi_aws_version"] = ">=7.44.0"
37-
context["pulumi_aws_native_version"] = ">=1.77.0"
35+
context["pulumi_version"] = ">=3.265.0"
36+
context["pulumi_aws_version"] = ">=7.48.0"
37+
context["pulumi_aws_native_version"] = ">=1.81.0"
3838
context["pulumi_command_version"] = ">=1.2.1"
39-
context["pulumi_github_version"] = ">=6.13.1"
39+
context["pulumi_github_version"] = ">=6.14.0"
4040
context["pulumi_okta_version"] = ">=6.6.0"
4141
context["boto3_version"] = ">=1.43.88"
42-
context["ephemeral_pulumi_deploy_version"] = ">=0.0.7"
42+
context["ephemeral_pulumi_deploy_version"] = ">=0.0.8"
4343
context["pydantic_version"] = ">=2.13.5"
44+
context["typing_extensions_version"] = ">=4.16.0"
4445
context["pyinstaller_version"] = ">=6.22.3"
4546
context["setuptools_version"] = "80.7.1"
4647
context["strawberry_graphql_version"] = "==0.298.0"
4748
context["fastapi_version"] = ">=0.141.1"
4849
context["fastapi_offline_version"] = ">=1.7.7"
49-
context["starlette_version"] = ">=1.6.0"
50+
context["starlette_version"] = ">=1.7.0"
5051
context["uvicorn_version"] = ">=0.53.0"
51-
context["lab_auto_pulumi_version"] = ">=0.2.3"
52+
context["lab_auto_pulumi_version"] = ">=0.3.0"
5253
context["ariadne_codegen_version"] = ">=0.18.0"
53-
context["pytest_mock_version"] = ">=3.15.1"
54+
context["pytest_mock_version"] = ">=3.16.0"
5455
context["uuid_utils_version"] = ">=1.0.0"
5556
context["syrupy_version"] = ">=6.1.1"
5657
context["structlog_version"] = ">=26.1.0"
5758
context["httpx_version"] = ">=0.28.1"
5859
context["httpx2_version"] = ">=2.13.0"
59-
context["python_kiota_bundle_version"] = ">=1.12.3"
60+
context["python_kiota_bundle_version"] = ">=1.14.1"
6061
context["vcrpy_version"] = ">=8.3.0"
6162
context["pytest_recording_version"] = ">=0.13.4"
6263
context["pytest_asyncio_version"] = ">=1.4.0"
@@ -65,7 +66,7 @@ def hook( # noqa: PLR0915 # yes, this is a lot of statements, but it's all just
6566
context["python_faker_version"] = ">=40.39.0"
6667
context["mutmut_version"] = ">=3.8.0"
6768
context["pyright_version"] = ">=1.1.414"
68-
context["pyrefly_version"] = ">=1.3.1"
69+
context["pyrefly_version"] = ">=1.3.2"
6970
context["vacuum_openapi_version"] = "0.30.0"
7071

7172
context["default_node_version"] = "24.11.1"

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies = [
2020
"pytest-cov>=7.1.0",
2121
"pytest-randomly>=5.0.0",
2222
"faker>=40.39.0",
23-
"pyrefly>=1.3.1",
23+
"pyrefly>=1.3.2",
2424
"copier==9.18.2",
2525
"copier-template-extensions==0.3.3"
2626
]

‎template/.config/pyrefly.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ ignore-errors-in-generated-code = true # not sure yet how effective this is
3333
no-access = "ignore" # (already covered by ruff SLF001)
3434
untyped-import = "ignore" # equivalent of reportMissingTypeStubs=false in pyright
3535
unannotated-return = "ignore" # ruff ANN2xx already requires this, but with suppress-none-returning so that None-returning functions don't need the noise. pyrefly has no equivalent option---the error kind is all-or-nothing.
36+
implicit-reexport = "error" # intentionally diverges from the upstream template's "ignore": this repo is for distributed libraries, whose public API must be deliberate (via __all__ or redundant aliases)
3637

3738
[[sub-config]]
3839
matches = "../**/tests/**"

‎template/.devcontainer/devcontainer.json.jinja‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
// Python
4343
"-ms-python.vscode-pylance", // pyrefly is the language server for this project; ms-python.python auto-installs Pylance via its extension pack, and Pylance then warns on every boot that it's disabled
4444
"ms-python.python@2026.5.2026052901",
45-
"meta.pyrefly@1.3.1",
45+
"meta.pyrefly@1.3.2",
4646
"ms-vscode-remote.remote-containers@0.414.0",
4747
"charliermarsh.ruff@2026.84.0",{% endraw %}{% endif %}{% raw %}
4848
{% endraw %}{% if is_child_of_copier_base_template is not defined and template_uses_vuejs is defined and template_uses_vuejs is sameas(true) %}{% raw %}

‎uv.lock‎

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)