@prefix this: <http://purl.org/np/RAlBYV-4V0SjcFXeylB7_MSPlrVqt9ftMNdFUoZZIJlNs> .
@prefix sub: <http://purl.org/np/RAlBYV-4V0SjcFXeylB7_MSPlrVqt9ftMNdFUoZZIJlNs#> .
@prefix np: <http://www.nanopub.org/nschema#> .
@prefix npx: <http://purl.org/nanopub/x/> .
@prefix pplan: <http://purl.org/net/p-plan#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns1: <http://purl.org/dc/terms/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
sub:Head {
  this: np:hasAssertion sub:assertion ;
    np:hasProvenance sub:provenance ;
    np:hasPublicationInfo sub:pubInfo ;
    a np:Nanopublication .
}
sub:assertion {
  sub:step ns1:description """@is_fairstep(label='Rotate image')
def rotate_image(imgStr:str) -> str:   
    \"\"\"Rotate image\"\"\"
    from PIL import Image
    image = Image.open(io.BytesIO(imgStr))
    new_image = image.transpose(Image.ROTATE_90)
    mgOut = io.BytesIO()
    new_image.save(imgOut, format=\"png\")
    return imgOut.getvalue()""" ;
    a pplan:Step ;
    rdfs:label "Cell from a Jupyter Lab notebook" .
}
sub:provenance {
  sub:assertion prov:generatedAtTime "2021-01-26T10:59:06.023864"^^xsd:dateTime .
}
sub:pubInfo {
  sub:sig npx:hasAlgorithm "RSA" ;
    npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOqbrPT5RmzxsvRXGHZSAXPzeRLt9ogiosL3tcPKC0g5J8B1577lnJ3oVKSfD80lgPJdr9K671RazGL/mkZ/yu/uCNqne07Q9jd6OIAEi3fldiVfGK8ZDh43rGWRuG+BlvbZ1lZRFrWsURTKTpMgh0C6vJFRIMkWH6ImbZC5JbbQIDAQAB" ;
    npx:hasSignature "Nw//1KAxe+pWEYfMemEn9VEAhd6PCGG8dRmgQfN+Za1ev7X+rtiXGf/TVSbJO+0c8/DhMLYFrdWuvay3cg3Tx1z6Z/UH8+dADDTv53Vxml76gs6QG2F+X5TqV+xIYx2qUoRJH9wAWIGwfQxf9Si2xYcZ16huqpT08/S7Gum6DD4=" ;
    npx:hasSignatureTarget this: .
  this: npx:introduces sub:step ;
    prov:generatedAtTime "2021-01-26T10:59:06.023864"^^xsd:dateTime ;
    prov:wasAttributedTo <https://orcid.org/0000-0001-7769-4272> .
}