Skip to content

Commit

Permalink
Merge pull request #134 from epics-containers/copier-update
Browse files Browse the repository at this point in the history
Copier update
  • Loading branch information
GDYendell authored Aug 12, 2024
2 parents 6866420 + eda879e commit 6fb6b50
Show file tree
Hide file tree
Showing 29 changed files with 95 additions and 46 deletions.
2 changes: 1 addition & 1 deletion .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Changes here will be overwritten by Copier
_commit: 2.1.0
_commit: 2.2.0
_src_path: gh:DiamondLightSource/python-copier-template
author_email: gary.yendell@diamond.ac.uk
author_name: Gary Yendell
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@
"workspaceMount": "source=${localWorkspaceFolder}/..,target=/workspaces,type=bind",
// After the container is created, install the python project in editable form
"postCreateCommand": "pip install $([ -f dev-requirements.txt ] && echo '-c dev-requirements.txt') -e '.[dev]' && pre-commit install"
}
}
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua

This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.

For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/2.1.0/how-to.html).
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/2.2.0/how-to.html).
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Bug Report
about: The template to use for reporting bugs and usability issues
title: " "
labels: 'bug'
assignees: ''

---

Describe the bug, including a clear and concise description of the expected behavior, the actual behavior and the context in which you encountered it (ideally include details of your environment).

## Steps To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error


## Acceptance Criteria
- Specific criteria that will be used to judge if the issue is fixed
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Issue
about: The standard template to use for feature requests, design discussions and tasks
title: " "
labels: ''
assignees: ''

---

A brief description of the issue, including specific stakeholders and the business case where appropriate

## Acceptance Criteria
- Specific criteria that will be used to judge if the issue is fixed
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Fixes #ISSUE

### Instructions to reviewer on how to test:
1. Do thing x
2. Confirm thing y happens

### Checks for reviewer
- [ ] Would the PR title make sense to a user on a set of release notes
2 changes: 1 addition & 1 deletion .github/pages/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
<link rel="canonical" href="main/index.html">
</head>

</html>
</html>
4 changes: 2 additions & 2 deletions .github/workflows/_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ jobs:
if: github.ref_type == 'tag' || github.ref_name == 'main'
# We pin to the SHA, not the tag, for security reasons.
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3.9.3
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: .github/pages
keep_files: true
keep_files: true
2 changes: 1 addition & 1 deletion .github/workflows/_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Create GitHub Release
# We pin to the SHA, not the tag, for security reasons.
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
with:
prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
files: "*"
Expand Down
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ repos:
- id: check-added-large-files
- id: check-yaml
- id: check-merge-conflict
- id: end-of-file-fixer

- repo: local
hooks:
Expand Down
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"recommendations": [
"ms-vscode-remote.remote-containers",
]
}
}
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -416,4 +416,4 @@
],
},
]
}
}
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
"files.insertFinalNewline": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
},
}
}
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
"problemMatcher": [],
}
]
}
}
4 changes: 2 additions & 2 deletions catalog-info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ metadata:
title: pvi
description: EPICS PV Interface described in YAML
spec:
type: documentation
type: library
lifecycle: experimental
owner: mef65357
owner: mef65357
2 changes: 1 addition & 1 deletion docs/how-to/contribute.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
```{include} ../../.github/CONTRIBUTING.md
```
```
20 changes: 10 additions & 10 deletions docs/images/dls-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/tutorials/create-pvi-device.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ pvi reconvert simDetector.pvi.device.yaml simDetector.template simDetectorExtras

:::{note}
See `pvi reconvert --help` for a full list of options.
:::
:::
25 changes: 16 additions & 9 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools>=64", "setuptools_scm[toml]>=6.2"]
requires = ["setuptools>=64", "setuptools_scm[toml]>=8"]
build-backend = "setuptools.build_meta"

[project]
Expand Down Expand Up @@ -62,7 +62,7 @@ pvi = "pvi.__main__:app"
GitHub = "https://github.com/epics-containers/pvi"

[tool.setuptools_scm]
write_to = "src/pvi/_version.py"
version_file = "src/pvi/_version.py"

[tool.pyright]
reportMissingImports = false # Ignore missing stubs in imported modules
Expand Down Expand Up @@ -113,11 +113,18 @@ commands =
src = ["src", "tests"]
line-length = 88
lint.select = [
"B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
"C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
"E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
"F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
"W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
"B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
"C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
"E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
"F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
"W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
"SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
]

[tool.ruff.lint.per-file-ignores]
# By default, private member access is allowed in tests
# See https://github.com/DiamondLightSource/python-copier-template/issues/154
# Remove this line to forbid private member access in tests
"tests/**/*" = ["SLF001"]
2 changes: 1 addition & 1 deletion schemas/pvi.device.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1230,4 +1230,4 @@
],
"title": "Device",
"type": "object"
}
}
2 changes: 1 addition & 1 deletion schemas/pvi.formatter.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,4 @@
"$ref": "#/$defs/DLSFormatter"
}
]
}
}
2 changes: 1 addition & 1 deletion src/pvi/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def schema(
typer.echo(f"Don't know how to create {output.name}")
raise typer.Exit(code=1)

output.write_text(json.dumps(schema, indent=2))
output.write_text(json.dumps(schema, indent=2) + "\n")


@app.command()
Expand Down
2 changes: 1 addition & 1 deletion src/pvi/_format/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def create_schema(cls) -> dict[str, Any]:
Formatter itself is not included, as it should not be instanstiated directly.
"""
cls._rebuild_child_models()
cls.rebuild_child_models()
return cls.type_adapter().json_schema()

def format(self, device: Device, path: Path) -> None:
Expand Down
1 change: 0 additions & 1 deletion src/pvi/_format/dls.edl
Original file line number Diff line number Diff line change
Expand Up @@ -338,4 +338,3 @@ indicatorPv "None"
font "arial-bold-r-14.0"
orientation "horizontal"
endObjectProperties

1 change: 0 additions & 1 deletion src/pvi/_format/pvi.template.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,3 @@ record("*", "{{ record.pv }}") {
}
{% endfor %}
### End of PV Interface for {{ device }} ###

2 changes: 1 addition & 1 deletion src/pvi/_format/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ def format_template(device: Device, pv_prefix: str, output: Path):
template_txt = Template(template.read()).render(
device=device.label, pv_prefix=pv_prefix, records=records
)
expanded.write(template_txt)
expanded.write(template_txt + "\n")
6 changes: 3 additions & 3 deletions src/pvi/typed_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,16 @@ def model_json_schema(
):
"""Ensure all child models have type field added before generating schema."""
if not cls.models_typed:
TypedModel._rebuild_child_models()
TypedModel.rebuild_child_models()

return super().model_json_schema(by_alias, ref_template, schema_generator, mode)

@classmethod
def _rebuild_child_models(cls):
def rebuild_child_models(cls):
"""Recursively rebuild all subclass models to add type into core schema."""
for subclass in cls.__subclasses__():
subclass.model_rebuild(force=True)
subclass._rebuild_child_models()
subclass.rebuild_child_models()

@classmethod
def _tag(cls):
Expand Down
2 changes: 1 addition & 1 deletion tests/format/input/dls.bob.pvi.formatter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ title_height: 26
max_height: 900
label_width: 120
widget_width: 120
widget_height: 20
widget_height: 20
2 changes: 1 addition & 1 deletion tests/format/input/dls.edl.pvi.formatter.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# yaml-language-server: $schema=../../../schemas/pvi.formatter.schema.json
type: DLSFormatter
type: DLSFormatter

0 comments on commit 6fb6b50

Please sign in to comment.