From b1cf512d784219a8683b5450b3cf9640b3fc7c40 Mon Sep 17 00:00:00 2001 From: Erik Heeren Date: Fri, 27 Jan 2023 18:12:31 +0100 Subject: [PATCH] py-nexusforge: add with dependencies (#35208) * py-nexusforge: add with dependencies * py-pyshacl, py-sseclient: more style * py-hjson, py-nexus-sdk, py-nexusforge, py-puremagic: more style * py-pyshacl: license update * py-nexusforge, py-prettytable, py-pyshacl: review remarks * py-nexusforge: make the variant mean something Too hasty to commit... --- .../packages/py-elasticsearch-dsl/package.py | 23 +++++++++++ .../builtin/packages/py-hjson/package.py | 18 +++++++++ .../builtin/packages/py-nexus-sdk/package.py | 21 ++++++++++ .../builtin/packages/py-nexusforge/package.py | 38 +++++++++++++++++++ .../builtin/packages/py-owlrl/package.py | 21 ++++++++++ .../packages/py-prettytable/package.py | 5 +-- .../builtin/packages/py-puremagic/package.py | 18 +++++++++ .../builtin/packages/py-pyshacl/package.py | 25 ++++++++++++ .../builtin/packages/py-sseclient/package.py | 21 ++++++++++ 9 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-elasticsearch-dsl/package.py create mode 100644 var/spack/repos/builtin/packages/py-hjson/package.py create mode 100644 var/spack/repos/builtin/packages/py-nexus-sdk/package.py create mode 100644 var/spack/repos/builtin/packages/py-nexusforge/package.py create mode 100644 var/spack/repos/builtin/packages/py-owlrl/package.py create mode 100644 var/spack/repos/builtin/packages/py-puremagic/package.py create mode 100644 var/spack/repos/builtin/packages/py-pyshacl/package.py create mode 100644 var/spack/repos/builtin/packages/py-sseclient/package.py diff --git a/var/spack/repos/builtin/packages/py-elasticsearch-dsl/package.py b/var/spack/repos/builtin/packages/py-elasticsearch-dsl/package.py new file mode 100644 index 0000000000..d039aec89c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-elasticsearch-dsl/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyElasticsearchDsl(PythonPackage): + """Elasticsearch DSL is a high-level library whose aim + is to help with writing and running queries against Elasticsearch. + It is built on top of the official low-level client (elasticsearch-py). + """ + + homepage = "https://github.com/elastic/elasticsearch-dsl-py" + pypi = "elasticsearch-dsl/elasticsearch-dsl-7.4.0.tar.gz" + + version("7.4.0", sha256="c4a7b93882918a413b63bed54018a1685d7410ffd8facbc860ee7fd57f214a6d") + + depends_on("py-setuptools", type="build") + depends_on("py-six", type=("build", "run")) + depends_on("py-python-dateutil", type=("build", "run")) + depends_on("py-elasticsearch@7.0.0:7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-hjson/package.py b/var/spack/repos/builtin/packages/py-hjson/package.py new file mode 100644 index 0000000000..f2b491c6ee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hjson/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack.package import * + + +class PyHjson(PythonPackage): + """Hjson is an user interface for JSON. + The Python implementation of Hjson is based on simplejson.""" + + homepage = "https://github.com/hjson/hjson-py" + pypi = "hjson/hjson-3.0.2.tar.gz" + + version("3.1.2", sha256="55af475a27cf83a7969c808399d7bccdec8fb836a07ddbd574587593b9cdcf75") + version("3.0.2", sha256="2838fd7200e5839ea4516ece953f3a19892c41089f0d933ba3f68e596aacfcd5") + + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-nexus-sdk/package.py b/var/spack/repos/builtin/packages/py-nexus-sdk/package.py new file mode 100644 index 0000000000..27bb28b90c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nexus-sdk/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyNexusSdk(PythonPackage): + """A Python API to interface with Blue Brain Nexus REST API.""" + + homepage = "https://github.com/BlueBrain/nexus-python-sdk" + pypi = "nexus-sdk/nexus-sdk-0.3.2.tar.gz" + + version("0.3.2", sha256="cd5668a062283410c5ff57a68c218440df607da84e0a813a8c9390611f7212b3") + + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + depends_on("py-puremagic", type=("build", "run")) + depends_on("py-requests", type=("build", "run")) + depends_on("py-sseclient", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-nexusforge/package.py b/var/spack/repos/builtin/packages/py-nexusforge/package.py new file mode 100644 index 0000000000..0e75abb528 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nexusforge/package.py @@ -0,0 +1,38 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyNexusforge(PythonPackage): + """Blue Brain Nexus Forge is a domain-agnostic, generic and + extensible Python framework enabling non-expert users to create and + manage knowledge graphs. + """ + + homepage = "https://github.com/BlueBrain/nexus-forge" + pypi = "nexusforge/nexusforge-0.7.0.tar.gz" + + version("0.8.0", sha256="4358505ead26e41c2a0c4e6113cf3a486c9661e2a3899394497a2b5a94b70424") + version("0.7.0", sha256="a8d2951d9ad18df9f2f4db31a4c18fcdd27bfcec929b03a3c91f133ea439413c") + + variant("sklearn", default=False, description="Enable sklearn") + + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + + depends_on("py-hjson", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-nexus-sdk", type=("build", "run")) + depends_on("py-aiohttp", type=("build", "run")) + depends_on("py-rdflib@6.0.0:", type=("build", "run")) + depends_on("py-pyld", type=("build", "run")) + depends_on("py-pyshacl@0.17.2", type=("build", "run")) + depends_on("py-nest-asyncio@1.5.1:", type=("build", "run")) + depends_on("py-pyparsing@2.0.2:", type=("build", "run")) + depends_on("py-owlrl@5.2.3:", type=("build", "run")) + depends_on("py-elasticsearch-dsl@7.4.0", type=("build", "run")) + depends_on("py-scikit-learn", when="+sklearn", type="run") diff --git a/var/spack/repos/builtin/packages/py-owlrl/package.py b/var/spack/repos/builtin/packages/py-owlrl/package.py new file mode 100644 index 0000000000..85ea22d117 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-owlrl/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack.package import * + + +class PyOwlrl(PythonPackage): + """A simple implementation of the OWL2 RL Profile, as well as a basic + RDFS inference, on top of RDFLib. Based mechanical forward chaining. + """ + + homepage = "https://github.com/RDFLib/OWL-RL" + pypi = "owlrl/owlrl-5.2.3.tar.gz" + + version("6.0.2", sha256="904e3310ff4df15101475776693d2427d1f8244ee9a6a9f9e13c3c57fae90b74") + version("5.2.3", sha256="b1891d75b2c2fb0db9e1504a9b12dab738ed89236414c51393d1030597004342") + + depends_on("py-setuptools", type="build") + depends_on("py-rdflib@5.0.0:", when="@5.0:5", type=("build", "run")) + depends_on("py-rdflib@6.0.2:", when="@6.0:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py index a08afc0e90..a3ed847832 100644 --- a/var/spack/repos/builtin/packages/py-prettytable/package.py +++ b/var/spack/repos/builtin/packages/py-prettytable/package.py @@ -18,11 +18,10 @@ class PyPrettytable(PythonPackage): version("3.4.1", sha256="7d7dd84d0b206f2daac4471a72f299d6907f34516064feb2838e333a4e2567bd") version("3.2.0", sha256="ae7d96c64100543dc61662b40a28f3b03c0f94a503ed121c6fca2782c5816f81") version("2.4.0", sha256="18e56447f636b447096977d468849c1e2d3cfa0af8e7b5acfcf83a64790c0aca") + version("2.2.1", sha256="6d465005573a5c058d4ca343449a5b28c21252b86afcdfa168cdc6a440f0b24c") version("0.7.2", sha256="2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9") depends_on("py-setuptools", type="build") depends_on("py-wcwidth", type=("build", "run"), when="@2.4.0:") - depends_on("py-importlib-metadata", type=("build", "run"), when="@2.4.0: ^python@:3.7") + depends_on("py-importlib-metadata", type=("build", "run"), when="@2: ^python@:3.7") depends_on("py-setuptools-scm", type="build", when="@2.4.0:") - depends_on("python@3.6:", type=("build", "run"), when="@2.4.0:") - depends_on("python@3.7:", type=("build", "run"), when="@3.2.0:") diff --git a/var/spack/repos/builtin/packages/py-puremagic/package.py b/var/spack/repos/builtin/packages/py-puremagic/package.py new file mode 100644 index 0000000000..d1c0866a59 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-puremagic/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPuremagic(PythonPackage): + """puremagic is a pure python module that will identify a file based off its magic numbers.""" + + homepage = "https://github.com/cdgriffith/puremagic" + pypi = "puremagic/puremagic-1.10.tar.gz" + + version("1.14", sha256="3d5df26cc7ec9aebbf842a09115a2fa85dc59ea6414fa568572c44775d796cbc") + version("1.10", sha256="6ffea02b80ceec1381f9df513e0120b701a74b6efad92311ea80281c7081b108") + + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-pyshacl/package.py b/var/spack/repos/builtin/packages/py-pyshacl/package.py new file mode 100644 index 0000000000..fb742ee2c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyshacl/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack.package import * + + +class PyPyshacl(PythonPackage): + """A Python validator for SHACL.""" + + homepage = "https://github.com/RDFLib/pySHACL" + pypi = "pyshacl/pyshacl-0.17.2.tar.gz" + + version("0.20.0", sha256="47f014c52cc69167b902c89b3940dd400f7f5d2169a62f97f837f3419b4a737d") + version("0.17.2", sha256="46f31c7a7f7298aa5b483d92dbc850ff79a144d26f1f41e83267ed84b4d6ae23") + + depends_on("py-poetry-core@1.1:1", type="build") + depends_on("python@3.7:3", type=("build", "run")) + depends_on("py-rdflib@6.0.0:6", when="@0.17.2", type=("build", "run")) + depends_on("py-rdflib@6.2.0:6", when="@0.20.0:", type=("build", "run")) + depends_on("py-html5lib@1.1:1", when="@0.20.0:", type=("build", "run")) + depends_on("py-owlrl@5.2.3:6", when="@0.17.2", type=("build", "run")) + depends_on("py-owlrl@6.0.2:6", when="@0.20.0:", type=("build", "run")) + depends_on("py-packaging@21.3:", when="@0.20.0:", type=("build", "run")) + depends_on("py-prettytable@2.2.1:2", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-sseclient/package.py b/var/spack/repos/builtin/packages/py-sseclient/package.py new file mode 100644 index 0000000000..97223c725e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sseclient/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PySseclient(PythonPackage): + """This is a Python client library for iterating over http Server + Sent Event (SSE) streams + """ + + homepage = "https://github.com/btubbs/sseclient" + pypi = "sseclient/sseclient-0.0.27.tar.gz" + + version("0.0.27", sha256="b2fe534dcb33b1d3faad13d60c5a7c718e28f85987f2a034ecf5ec279918c11c") + + depends_on("py-setuptools", type="build") + depends_on("py-requests@2.9:", type=("build", "run")) + depends_on("py-six", type=("build", "run"))