Skip to content

Merge pull request #54 from nhanlon2/master #14

Merge pull request #54 from nhanlon2/master

Merge pull request #54 from nhanlon2/master #14

name: pypi_rocrate
# Validate if rocrate of pypi can open and parse it
# https://pypi.org/project/rocrate/
on: [ push ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.10" ]
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install rocrate
- name: validate
run: |
import os
import sys
import tempfile
from pathlib import Path
from zipfile import ZIP_DEFLATED
from zipfile import Path as ZPath
from zipfile import ZipFile
from rocrate.rocrate import ROCrate
from rocrate.model.entity import Entity
from rocrate.model.contextentity import ContextEntity
success = 0
for root, _, files in os.walk(".", topdown=False):
for name in files:
if not name.endswith('.eln'):
continue
fileName = os.path.join(root, name)
print(f'\n\nTry to parse: {fileName}')
with ZipFile(fileName, 'r', compression=ZIP_DEFLATED) as elnFile:
p = ZPath(elnFile)
dirName = sorted(p.iterdir())[0]
try:
dirpath = Path(tempfile.mkdtemp())
elnFile.extractall(dirpath)
temppath= dirpath.joinpath(dirName.name)
crate = ROCrate(temppath)
for e in crate.get_entities():
print(f' {e.id}: {e.type}')
except Exception:
print(" ***** ERROR: Could not parse content of this file!! *****")
success = 1
sys.exit(success)
shell: python