Skip to content

Commit

Permalink
Merge pull request #292 from linkml/issue-1749-gh-actions
Browse files Browse the repository at this point in the history
Issue 1749 gh actions - add once a week dependency check
sierra-moxon authored Dec 19, 2023
2 parents c9972b4 + a39fd65 commit 0c55320
Showing 3 changed files with 68 additions and 4 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/check-dependencies.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Build and test linkml-runtime with latest dependency versions

on:
schedule:
- cron: '0 5 * * 1' # once per week on Monday at 05:00 UTC
workflow_dispatch:
# Allows you to run this workflow manually from the Actions tab
types: trigger-run-check-dependencies

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.8", "3.9", "3.10"]
exclude:
- os: windows-latest
python-version: "3.8"

runs-on: ${{ matrix.os }}

steps:

#----------------------------------------------
# install poetry
#----------------------------------------------
- name: Install Poetry
# Pin to 1.3.2 to workaround https://github.com/python-poetry/poetry/issues/7611
run: pipx install poetry==1.3.2

#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'poetry'

#----------------------------------------------
# install your root project, if required
#----------------------------------------------
- name: Install library
run: poetry install --no-interaction

# this step we remove and rebuild the poetry.lock file to ensure that the tests that follow can be run
# with the latest dependencies

#----------------------------------------------
# Remove and Rebuild the poetry.lock File
#----------------------------------------------
- name: Remove poetry.lock (Unix)
if: runner.os != 'Windows'
run: rm -rf poetry.lock

- name: Remove poetry.lock (Windows)
if: runner.os == 'Windows'
run: Remove-Item poetry.lock -Force

- name: Run tests
run: poetry run python -m unittest discover
4 changes: 1 addition & 3 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -12,10 +12,8 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.7", "3.8", "3.9", "3.10"]
python-version: ["3.8", "3.9", "3.10"]
exclude:
- os: windows-latest
python-version: "3.7"
- os: windows-latest
python-version: "3.8"

3 changes: 2 additions & 1 deletion linkml_runtime/loaders/yaml_loader.py
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
from linkml_runtime.utils.yamlutils import YAMLRoot, DupCheckYamlLoader
from pydantic import BaseModel


class YAMLLoader(Loader):
"""
A Loader that is capable of instantiating LinkML data objects from a YAML file
@@ -34,7 +35,7 @@ def load_as_dict(self,

def load_any(self,
source: Union[str, dict, TextIO],
target_class: Union[Type[YAMLRoot],Type[BaseModel]],
target_class: Union[Type[YAMLRoot], Type[BaseModel]],
*, base_dir: Optional[str] = None,
metadata: Optional[FileInfo] = None, **_) -> Union[YAMLRoot, List[YAMLRoot]]:
data_as_dict = self.load_as_dict(source, base_dir=base_dir, metadata=metadata)

0 comments on commit 0c55320

Please sign in to comment.