From b1389cc9bfab2959d9714b268248adb0564886f2 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Tue, 20 Sep 2022 10:21:33 +0200 Subject: [PATCH 01/19] new setup process --- pyproject.toml | 164 +++++++++++++++++++++++- requirements-all.txt | 275 ++++++++++++++++++++++++++++++++++++++++ setup.py | 293 +------------------------------------------ 3 files changed, 440 insertions(+), 292 deletions(-) create mode 100644 requirements-all.txt diff --git a/pyproject.toml b/pyproject.toml index 829d4b6f3..47c30c334 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,164 @@ [build-system] -requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] \ No newline at end of file +requires = ["setuptools"] +# requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] +build-backend = "setuptools.build_meta" + + +[project] +name = 'nomad-lab' +version = '1.1.2' +description = 'The NOvel MAterials Discovery (NOMAD) Python package' +readme = "README.md" +authors = [ + {name = "NOMAD Laboratory"}, + {email = 'markus.scheidgen@physik.hu-berlin.de'} +] +license = {file = "LICENSE"} +requires-python = ">=3.6" +dependencies = [ + 'nptyping==1.4.4', + 'cachetools==4.2.4', + 'docstring-parser==0.12', + 'Pint==0.17', + 'orjson==3.6.0', + 'click>=7.1.2', + 'requests==2.27.1', + 'pytz==2021.1', + 'aniso8601==7.0.0', + 'ase==3.19.0', + 'python-keycloak==0.26.1', + 'elasticsearch-dsl==7.4.0', + 'pydantic==1.9.1', + 'jmespath==0.10.0', + 'h5grove==1.0.0', + 'httpx==0.22.0', + 'memoization==0.4.0', + 'lxml~=4.6', +] + +[project.urls] +homepage = "https://nomad-lab.eu/" +# documentation = "https://readthedocs.org" +repository = 'https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR' +# changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md" + +[project.optional-dependencies] +parsing = [ + 'netCDF4==1.5.4', + 'h5py==3.6.0', + 'hjson==3.0.2', + 'scipy==1.7.1', + 'scikit-learn==0.24.2', + 'matid==0.6.1', + 'python-magic==0.4.24', + 'panedr==0.2', + 'parmed==3.0.0', + 'mdtraj==1.9.6', + 'mdanalysis', + 'xarray~=0.19', + 'phonopy==2.11.0', + 'pymatgen==2022.0.17', + 'asr==0.4.1', + 'bitarray==2.3.5', + 'xrdtools==0.1.1', + 'openpyxl==3.0.9' +] +infrastructure = [ + 'optimade[mongo]==0.18.0', + 'structlog==20.1.0', + 'elasticsearch==7.17.1', + 'msgpack', + 'celery[redis]==4.4.7', + 'mongoengine', + 'pymongo==3.12.1', + # 'Werkzeug', + 'itsdangerous==2.0.1', + 'passlib==1.7.4', + 'python-logstash==0.4.6', + 'gitpython==3.1.24', + 'm2r==0.2.1', + 'zipstream-new==1.1.5', + 'bagit==1.8.1', + 'bcrypt==3.2.0', + 'filelock==3.3.1', + 'pyjwt[crypto]==1.7.1', + 'cryptography', + 'jsonschema[format]==4.1.2', + 'runstats==2.0.0', + 'pyyaml==6.0', + 'tabulate==0.8.9', + 'bs4==0.0.1', + 'html5lib==1.1', + 'zipfile37==0.1.3', + 'basicauth==0.4.1', + 'inflection==0.5.1', + 'unidecode==1.3.2', + 'python-json-logger==2.0.2', + 'recommonmark==0.7.1', + 'jinja2==3.0.3', + 'rdflib==5.0.0', + 'fastapi==0.65.3', + 'uvicorn[standard]', + 'python-multipart==0.0.5', + 'jupyterhub==1.4.2', + 'dockerspawner==12.1.0', + 'oauthenticator==14.2.0', + 'validators==0.18.2', + 'aiofiles==0.8.0', + 'joblib==1.1.0', +] +dev = [ + 'markupsafe', + 'setuptools==57.5.0', + 'gitpython==3.1.24', + 'mypy==0.730', + 'typed-ast==1.4.2', + 'astroid==2.5.1', + 'pylint==2.3.1', + 'pylint_plugin_utils==0.5', + 'pylint_mongoengine==0.3.3', + 'pycodestyle==2.8.0', + 'pytest==3.10.0', + 'pytest-timeout==1.4.2', + 'pytest-cov==2.7.1', + 'rope==0.21.0', + 'names==0.3.0', + 'essential_generators==1.0', + 'twine==3.4.2', + 'python-gitlab==2.10.1', + 'devtools==0.8.0', + 'mkdocs==1.2.3', + 'mkdocs-material==8.1.1', + 'mkdocs-material-extensions==1.0.3', + 'mkdocs-macros-plugin==0.6.3', +] + + +[project.scripts] +nomad = "nomad.cli:run_cli" + + +# [tool.setuptools] +# include-package-data = true +# # This is already the default behaviour if your are using +# # pyproject.toml to configure your build. +# # You can deactivate that with `include-package-data = false` + +# Package discovery + +# [tool.setuptools.packages] +# find = {} # Scan the project directory with the default parameters +# OR +[tool.setuptools.packages.find] +# All the following settings are optional: +where = ["."] # ["."] by default +include = ["nomad*", "dependencies*"] # ["*"] by default +exclude = ["*.tests*"] # empty by default +# namespaces = false # true by default +# +# [tool.setuptools.package-data] +# "nexusparser.definitions.base_classes" = ["*.xml"] +# "nexusparser.definitions.applications" = ["*.xml"] +# "nexusparser.definitions.contributed_definitions" = ["*.xml"] +# "nexusparser.definitions" = ["*.xsd"] +# "optimade.grammar" = ["*.lark"] diff --git a/requirements-all.txt b/requirements-all.txt new file mode 100644 index 000000000..fcce79d9c --- /dev/null +++ b/requirements-all.txt @@ -0,0 +1,275 @@ +# dependencies/parsers/nexus +# git diff requirements.txt +# +# -click==7.1.2 +# +click>=7.1.2 +# +# dependencies/parsers/workflow +# git diff requirements.txt +# -xarray==0.19.0 +# +xarray~=0.19 +# -h5py==3.4.0 +# +h5py~=3.4 +# +# This file is autogenerated by pip-compile with python 3.7 +# To update, run: +# +# pip-compile --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-all.txt dependencies/matid/setup.py dependencies/nomad-dos-fingerprints/setup.py dependencies/parsers/atomistic/requirements.txt dependencies/parsers/database/requirements.txt dependencies/parsers/eelsdb/requirements.txt dependencies/parsers/electronic/requirements.txt dependencies/parsers/nexus/requirements.txt dependencies/parsers/workflow/requirements.txt pyproject.toml +# +aiofiles==0.8.0 # via nomad-lab (pyproject.toml) +alabaster==0.7.12 # via sphinx +alembic==1.8.1 # via jupyterhub +amqp==2.6.1 # via kombu +aniso8601==7.0.0 # via nomad-lab (pyproject.toml) +anyio==3.6.1 # via httpcore, watchfiles +arrow==1.2.2 # via isoduration +ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) +asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +astroid==2.5.1 # via nomad-lab (pyproject.toml), pylint +asttokens==2.0.8 # via devtools +astunparse==1.6.3 # via mdtraj +async-generator==1.10 # via jupyterhub +async-timeout==4.0.2 # via redis +atomicwrites==1.4.1 # via pytest +attrs==22.1.0 # via jsonschema, pytest +babel==2.10.3 # via sphinx +bagit==1.8.1 # via nomad-lab (pyproject.toml) +basicauth==0.4.1 # via nomad-lab (pyproject.toml) +bcrypt==3.2.0 # via nomad-lab (pyproject.toml) +beautifulsoup4==4.11.1 # via bs4 +billiard==3.6.4.0 # via celery +biopython==1.79 # via mdanalysis +bitarray==2.3.5 # via nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nomad-lab (pyproject.toml) +bleach==5.0.1 # via readme-renderer +bs4==0.0.1 # via nomad-lab (pyproject.toml) +cached-property==1.5.2 # via fqdn, h5py +cachetools==4.2.4 # via nomad-lab (pyproject.toml) +celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) +certifi==2022.6.15 # via elasticsearch, httpcore, httpx, requests +certipy==0.1.3 # via jupyterhub +cffi==1.15.1 # via bcrypt, cryptography +cftime==1.6.1 # via netcdf4 +charset-normalizer==2.0.12 # via httpx, requests +chronic==0.3.4 # via matid +click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, mkdocs, nomad-lab (pyproject.toml), uvicorn +colorama==0.4.5 # via twine +commonmark==0.9.1 # via recommonmark +coverage==6.4.4 # via pytest-cov +cryptography==37.0.4 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cycler==0.11.0 # via matplotlib +decorator==5.1.1 # via validators +defusedxml==0.7.1 # via odfpy +deprecated==1.2.13 # via redis +devtools==0.8.0 # via nomad-lab (pyproject.toml) +dnspython==2.2.1 # via email-validator +docker==6.0.0 # via dockerspawner +dockerspawner==12.1.0 # via nomad-lab (pyproject.toml) +docstring-parser==0.12 # via nomad-lab (pyproject.toml) +docutils==0.19 # via m2r, readme-renderer, recommonmark, sphinx +ecdsa==0.18.0 # via python-jose +elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) +elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) +email-validator==1.2.1 # via optimade +entrypoints==0.4 # via jupyterhub +escapism==1.0.1 # via dockerspawner +essential-generators==1.0 # via nomad-lab (pyproject.toml) +et-xmlfile==1.1.0 # via openpyxl +executing==0.10.0 # via devtools +fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade +filelock==3.3.1 # via nomad-lab (pyproject.toml) +flask==2.2.2 # via asr +fonttools==4.37.1 # via matplotlib +fqdn==1.5.1 # via jsonschema +future==0.18.2 # via matid, uncertainties +ghp-import==2.1.0 # via mkdocs +gitdb==4.0.9 # via gitpython +gitpython==3.1.24 # via nomad-lab (pyproject.toml) +greenlet==1.1.3 # via sqlalchemy +griddataformats==0.7.0 # via mdanalysis +gsd==2.6.0 # via mdanalysis +h11==0.12.0 # via httpcore, uvicorn +h5grove==1.0.0 # via nomad-lab (pyproject.toml) +h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, h5grove, nomad-lab (pyproject.toml), phonopy, pyscf +hjson==3.0.2 # via nomad-lab (pyproject.toml) +html5lib==1.1 # via nomad-lab (pyproject.toml) +httpcore==0.14.7 # via httpx +httptools==0.4.0 # via uvicorn +httpx==0.22.0 # via nomad-lab (pyproject.toml) +idna==3.3 # via anyio, email-validator, jsonschema, requests, rfc3986 +imagesize==1.4.1 # via sphinx +importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, keyring, kombu, mako, markdown, mkdocs, pint, pluggy, redis, sphinx, sqlalchemy, twine, xarray +importlib-resources==5.9.0 # via alembic +inflection==0.5.1 # via nomad-lab (pyproject.toml) +isodate==0.6.1 # via rdflib +isoduration==20.11.0 # via jsonschema +isort==4.3.21 # via pylint +itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jinja2==3.0.3 # via flask, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml), sphinx +jmespath==0.10.0 # via nomad-lab (pyproject.toml) +joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn +jsonpointer==2.3 # via jsonschema +jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) +jupyter-telemetry==0.1.0 # via jupyterhub +jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator +keyring==23.8.2 # via twine +kiwisolver==1.4.4 # via matplotlib +kombu==4.6.11 # via celery +lark-parser==0.12.0 # via optimade +lazy-object-proxy==1.7.1 # via astroid +lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools +m2r==0.2.1 # via nomad-lab (pyproject.toml) +mako==1.2.1 # via alembic +markdown==3.4.1 # via mkdocs, mkdocs-material, pymdown-extensions +markupsafe==2.1.1 # via jinja2, mako, nomad-lab (pyproject.toml), werkzeug +matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +matplotlib==3.5.3 # via ase, asr, mdanalysis, phonopy, pymatgen +mccabe==0.6.1 # via pylint +mdanalysis==2.1.0 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +mdtraj==1.9.6 # via nomad-lab (pyproject.toml) +memoization==0.4.0 # via nomad-lab (pyproject.toml) +mergedeep==1.3.4 # via mkdocs +mistune==2.0.4 # via m2r +mkdocs==1.2.3 # via mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml) +mkdocs-macros-plugin==0.6.3 # via nomad-lab (pyproject.toml) +mkdocs-material==8.1.1 # via nomad-lab (pyproject.toml) +mkdocs-material-extensions==1.0.3 # via mkdocs-material, nomad-lab (pyproject.toml) +mmtf-python==1.1.3 # via mdanalysis +mongoengine==0.24.2 # via nomad-lab (pyproject.toml) +mongomock==4.1.2 # via optimade +monty==2022.4.26 # via pymatgen +more-itertools==8.14.0 # via pytest +mpmath==1.2.1 # via sympy +mrcfile==1.4.2 # via griddataformats +msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) +mypy==0.730 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +mypy-extensions==0.4.3 # via mypy +names==0.3.0 # via nomad-lab (pyproject.toml) +netcdf4==1.5.4 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdanalysis, pymatgen +nptyping==1.4.4 # via nomad-lab (pyproject.toml) +numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools +oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) +oauthlib==3.2.0 # via jupyterhub +odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt +openpyxl==3.0.9 # via nomad-lab (pyproject.toml) +optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) +orjson==3.6.0 # via h5grove, nomad-lab (pyproject.toml) +packaging==21.3 # via docker, matplotlib, mdanalysis, mkdocs, mongomock, pint, redis, sphinx +palettable==3.3.0 # via pymatgen +pamela==1.0.0 # via jupyterhub +pandas==1.3.5 # via -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, panedr, pymatgen, xarray +panedr==0.2 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +parmed==3.0.0 # via nomad-lab (pyproject.toml) +passlib==1.7.4 # via nomad-lab (pyproject.toml) +phonopy==2.11.0 # via -r dependencies/parsers/workflow/requirements.txt, asr, nomad-lab (pyproject.toml) +pillow==9.2.0 # via matplotlib +pint==0.17 # via nomad-lab (pyproject.toml) +pkginfo==1.8.3 # via twine +plotly==5.10.0 # via asr, pymatgen +pluggy==1.0.0 # via pytest +prometheus-client==0.14.1 # via jupyterhub +py==1.11.0 # via pytest +pyaml==21.10.1 # via -r dependencies/parsers/nexus/requirements.txt +pyasn1==0.4.8 # via python-jose, rsa +pycodestyle==2.8.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +pycparser==2.21 # via cffi +pydantic==1.9.1 # via fastapi, nomad-lab (pyproject.toml), optimade +pygments==2.13.0 # via mkdocs-material, readme-renderer, sphinx +pyjwt[crypto]==1.7.1 # via nomad-lab (pyproject.toml) +pylint==2.3.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pylint-mongoengine, pylint-plugin-utils +pylint-mongoengine==0.3.3 # via nomad-lab (pyproject.toml) +pylint-plugin-utils==0.5 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pylint-mongoengine +pymatgen==2022.0.17 # via asr, nomad-lab (pyproject.toml) +pymdown-extensions==9.5 # via mkdocs-material +pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimade +pyopenssl==22.0.0 # via certipy +pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib +pyrsistent==0.18.1 # via jsonschema +pyscf==2.0.1 # via -r dependencies/parsers/electronic/requirements.txt +pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pytest-cov, pytest-timeout +pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas +python-dotenv==0.20.0 # via uvicorn +python-gitlab==2.10.1 # via nomad-lab (pyproject.toml) +python-jose==3.3.0 # via python-keycloak +python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) +python-keycloak==0.26.1 # via nomad-lab (pyproject.toml) +python-logstash==0.4.6 # via nomad-lab (pyproject.toml) +python-magic==0.4.24 # via nomad-lab (pyproject.toml) +python-multipart==0.0.5 # via nomad-lab (pyproject.toml) +pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), pandas +pyyaml==6.0 # via mkdocs, mkdocs-macros-plugin, nomad-lab (pyproject.toml), phonopy, pyaml, pyyaml-env-tag, uvicorn +pyyaml-env-tag==0.1 # via mkdocs +rdflib==5.0.0 # via nomad-lab (pyproject.toml) +readme-renderer==37.0 # via twine +recommonmark==0.7.1 # via nomad-lab (pyproject.toml) +redis==4.3.4 # via celery +requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, sphinx, twine +requests-toolbelt==0.9.1 # via python-gitlab, twine +rfc3339-validator==0.1.4 # via jsonschema +rfc3986[idna2008]==1.5.0 # via httpx, twine +rfc3987==1.3.8 # via jsonschema +rope==0.21.0 # via nomad-lab (pyproject.toml) +rsa==4.9 # via python-jose +ruamel-yaml==0.17.21 # via jupyter-telemetry, pymatgen +ruamel-yaml-clib==0.2.6 # via ruamel-yaml +runstats==2.0.0 # via nomad-lab (pyproject.toml) +scikit-learn==0.24.2 # via matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml), sklearn +scipy==1.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, ase, griddataformats, matid, matid (dependencies/matid/setup.py), mdanalysis, mdtraj, nomad-lab (pyproject.toml), pymatgen, pyscf, scikit-learn +sentinels==1.0.0 # via mongomock +six==1.16.0 # via asttokens, astunparse, basicauth, bcrypt, bleach, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators +sklearn==0.0 # via matid +smmap==5.0.0 # via gitdb +sniffio==1.2.0 # via anyio, httpcore, httpx +snowballstemmer==2.2.0 # via sphinx +soupsieve==2.3.2.post1 # via beautifulsoup4 +spglib==2.0.0 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +sphinx==5.1.1 # via recommonmark +sphinxcontrib-applehelp==1.0.2 # via sphinx +sphinxcontrib-devhelp==1.0.2 # via sphinx +sphinxcontrib-htmlhelp==2.0.0 # via sphinx +sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-qthelp==1.0.3 # via sphinx +sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sqlalchemy==1.4.40 # via alembic, jupyterhub +starlette==0.14.2 # via fastapi +structlog==20.1.0 # via nomad-lab (pyproject.toml) +sympy==1.10.1 # via pymatgen +tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen +tenacity==8.0.1 # via plotly +termcolor==1.1.0 # via mkdocs-macros-plugin +threadpoolctl==3.1.0 # via mdanalysis, scikit-learn +tifffile==2021.11.2 # via h5grove +tornado==6.2 # via jupyterhub +tqdm==4.64.0 # via mdanalysis, twine +traitlets==5.3.0 # via jupyter-telemetry, jupyterhub +twine==3.4.2 # via nomad-lab (pyproject.toml) +typed-ast==1.4.2 # via astroid, mypy, nomad-lab (pyproject.toml) +typing-extensions==4.3.0 # via anyio, arrow, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray +typish==1.9.3 # via nptyping +uncertainties==3.1.7 # via pymatgen +unidecode==1.3.2 # via nomad-lab (pyproject.toml) +uri-template==1.2.0 # via jsonschema +urllib3==1.26.12 # via docker, elasticsearch, requests +uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) +uvloop==0.16.0 # via uvicorn +validators==0.18.2 # via nomad-lab (pyproject.toml) +vine==1.3.0 # via amqp, celery +watchdog==2.1.9 # via mkdocs +watchfiles==0.16.1 # via uvicorn +webcolors==1.12 # via jsonschema +webencodings==0.5.1 # via bleach, html5lib +websocket-client==1.4.0 # via docker +websockets==10.3 # via uvicorn +werkzeug==2.2.2 # via flask +wheel==0.37.1 # via astunparse +wrapt==1.12.1 # via astroid, deprecated +xarray==0.20.2 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +xrdtools==0.1.1 # via nomad-lab (pyproject.toml) +zipfile37==0.1.3 # via nomad-lab (pyproject.toml) +zipp==3.8.1 # via importlib-metadata, importlib-resources +zipstream-new==1.1.5 # via nomad-lab (pyproject.toml) + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.py b/setup.py index cffd58698..606849326 100644 --- a/setup.py +++ b/setup.py @@ -1,292 +1,3 @@ -# -# Copyright The NOMAD Authors. -# -# This file is part of NOMAD. See https://nomad-lab.eu for further info. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +from setuptools import setup -from setuptools import setup, find_packages -from subprocess import call -from setuptools.command.install import install as setup_install -import runpy -import os -import sys -import json -import re -import fastentrypoints # pylint: disable=unused-import - -''' -This setup.py works differently for creating a distribution than installing for -development. The idea is that for distributions, we compile the requirements, packages, and -data files from all dependencies and install everything under one package called 'nomad-lab'. -For development we install each dependency as its own project. This is mainly due to -pip's limitation of not being able to install from multiple source folders in develop -mode. - -The compilation process can by run with ``python setup.py compile``. It will create a -file with setup kwargs calles ``./setup.json``. If this file exists setup will be called -with compiled args. If this file does not exist, setup will be called with regular args. - -This setup makes use of ``extras_require``. The extras are parsing, infrastructure, dev, -and all. Where all is the union of the other ones. The extras are parsed from the -requirements.txt where specific comments are used to assign an extra to requirements. -''' - - -ignore_extra_requires = ['optimade'] -''' Dependencies where the extra_requires should not be added ''' - - -def parse_requirements(): - ''' - Parses the requirements.txt file to extras install and extra requirements. - Sections headed with # [extra] are assigned to the 'extra' extra. - - Returns: - Tuple with install and extra requires passible to :func:`setuptools.setup`. - ''' - with open('requirements.txt', 'rt') as f: - lines = f.readlines() - - extras_require = {} - requires = [] - all_requires = [] - current = None - for line in lines: - line = line.strip() - - if line == '': - continue - - match = re.match(r'^#\s*\[([a-zA-Z0-9_]+)\]$', line) - if match: - extra = match.group(1) - current = list() - extras_require[extra] = current - elif line.startswith('#'): - continue - else: - line = line.split('#')[0].strip() - if current is None: - requires.append(line) - else: - current.append(line) - all_requires.append(line) - - extras_require['all'] = all_requires - - return requires, extras_require - - -class install(setup_install): - def __post_install(self, dir): - if os.name == 'posix': - call(['./auto_complete_install.sh']) - - def run(self): - setup_install.run(self) - self.execute(self.__post_install, (self.install_lib, ), msg='installing autocompletion') - - -def compile_dependency_setup_kwargs(paths, **kwargs): - import setuptools - import distutils.core as distutils_core - - # collect all kwargs from all setup.pys - results = {} - current = {} - - def patched_setup(*args, **kwargs): - assert len(args) == 0 - assert current['name'] not in results, 'current is %s' % current['name'] - - results[current['name']] = { - 'meta': dict(**current), - 'kwargs': kwargs - } - - if len(kwargs) > 0: - current['name'] = kwargs.get('name', 'nomad') - current['directory'] = './' - current['setup.py'] = './setup.py' - patched_setup(**kwargs) - - setuptoolss = [setuptools, distutils_core] - orig_setups = [] - for st in setuptoolss: - orig_setups.append((st, getattr(st, 'setup'))) - setattr(st, 'setup', patched_setup) - - for path in paths: - for root, _, files in os.walk(path): - for file in files: - if os.path.basename(file) == 'setup.py': - setup_path = os.path.join(root, file) - current['name'] = os.path.basename(os.path.dirname(setup_path)) - current['directory'] = os.path.dirname(setup_path) - current['setup.py'] = setup_path - cwd = os.getcwd() - os.chdir(os.path.dirname(setup_path)) - try: - runpy.run_path(file, run_name='__main__') - except Exception: - import traceback - traceback.print_exc() - print('Could not run %s' % setup_path) - sys.exit(1) - finally: - os.chdir(cwd) - - for st, setup in orig_setups: - setattr(st, 'setup', setup) - - # combine the kwargs - all_packages = [] - all_package_dir = {} - all_package_data = {} - all_install_requires = {} - all_names = set() - for _, setup_data in results.items(): - meta = setup_data['meta'] - local_kwargs = setup_data['kwargs'] - - if 'name' in local_kwargs: - all_names.add(local_kwargs['name']) - - name = local_kwargs.get('name', meta['name']) - - # 1. packages, package_dir - package_dir = local_kwargs.get('package_dir', {'': './'}) - packages = local_kwargs.get('packages', []) - - assert len(package_dir) == 1 - assert '' in package_dir - - for package in packages: - root = package.split('.')[0] - if root not in package_dir and root not in all_package_dir: - all_package_dir[root] = os.path.normpath( - os.path.join(meta['directory'], package_dir[''], root)) - all_packages.append(package) - - # 2. package_data - all_package_data.update(**local_kwargs.get('package_data', {})) - - # 3. requires - local_install_requires = set() - if name not in ignore_extra_requires: - for extra_require in local_kwargs.get('extras_require', {}).values(): - for require in extra_require: - local_install_requires.add(require) - - for require in local_kwargs.get('install_requires', []): - local_install_requires.add(require) - all_install_requires[name] = local_install_requires - - # automatically add parser deps - for _, setup_data in results.items(): - if 'parsers' in setup_data['meta']['setup.py']: - parsing = kwargs.setdefault('extras_require', {}).setdefault('parsing', []) - all = kwargs.setdefault('extras_require', {}).setdefault('all', []) - for require in setup_data['kwargs'].get('install_requires', []): - if require not in parsing: - parsing.append(require) - all.append(require) - - def replace_own_packages(requires): - ''' replaces nomad dependencies with their requirements ''' - for other in all_names: - if other in requires: - requires.remove(other) - requires.extend(all_install_requires[other]) - - # remove dups - sorted_requires = sorted(requires) - sorted_normalized = [re.match(r'^([a-zA-Z0-9_\.\-]*).*$', r).group(1) for r in sorted_requires] - to_remove = [] - for i, require in enumerate(sorted_normalized): - if i + 1 < len(sorted_requires) and require == sorted_normalized[i + 1]: - to_remove.append(i) - for i in to_remove: - requires.remove(sorted_requires[i]) - - # run twice because dependencies can be dependencies of dependencies - for _ in range(0, 2): - for extra_require in kwargs.get('extras_require', {}).values(): - replace_own_packages(extra_require) - replace_own_packages(kwargs.get('install_requires', [])) - - kwargs.update(**{ - 'package_dir': all_package_dir, - 'packages': all_packages, - 'package_data': all_package_data - }) - - return kwargs - - -def setup_kwargs(): - from nomad import config - - install_requires, extras_require = parse_requirements() - with open("README.md", "r") as fh: - long_description = fh.read() - - return dict( - name='nomad-lab', - author='NOMAD Laboratory', - author_email='markus.scheidgen@physik.hu-berlin.de', - url='https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR', - version=config.meta.version, - license='APACHE 2.0', - description='The NOvel MAterials Discovery (NOMAD) Python package', - long_description=long_description, - long_description_content_type="text/markdown", - package_dir={'': './'}, - packages=['nomad.%s' % pkg for pkg in find_packages('./nomad')] + ['nomad'], - setup_requires=['pip', 'setuptools', 'wheel', 'fastentrypoints', 'numpy', 'pyyaml'], - install_requires=install_requires, - extras_require=extras_require, - include_package_data=True, - python_requires='>=3.6', - entry_points={ - 'console_scripts': [ - 'nomad = nomad.cli:run_cli' - ] - } - ) - - -if __name__ == '__main__': - if len(sys.argv) == 2 and sys.argv[1] == 'compile': - kwargs = compile_dependency_setup_kwargs(['dependencies'], **setup_kwargs()) - kwargs['package_data']['optimade.grammar'] = ['*.lark'] - with open('setup.json', 'wt') as f: - json.dump(kwargs, f, indent=2) - sys.exit(0) - - if len(sys.argv) == 2 and sys.argv[1] == 'dry': - import pprint - pprint.pprint( - compile_dependency_setup_kwargs(['dependencies'], **setup_kwargs())) - sys.exit(0) - - if os.path.exists('setup.json'): - with open('setup.json', 'rt') as f: - kwargs = json.load(f) - - else: - kwargs = setup_kwargs() - - setup(cmdclass={'install': install}, **kwargs) +setup() -- GitLab From dbfc86771d86865d9b28fb5567c85e68e6794195 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Tue, 20 Sep 2022 15:15:55 +0200 Subject: [PATCH 02/19] fix setup --- Dockerfile | 5 +- MANIFEST.in | 2 +- pyproject.toml | 2 +- requirements.txt | 119 ----------------------------------------------- 4 files changed, 6 insertions(+), 122 deletions(-) delete mode 100644 requirements.txt diff --git a/Dockerfile b/Dockerfile index 9d710cd88..ff4502bcf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,8 +67,10 @@ RUN rm -rf /pymolfile # Copy files and install nomad@FAIRDI WORKDIR /install COPY . /install -RUN python setup.py compile +# RUN python setup.py compile +RUN pip install -r requirements-all.txt RUN pip install .[all] +RUN ./dependencies.sh RUN ./generate_gui_artifacts.sh RUN ./generate_docs_artifacts.sh RUN mkdocs build && mv site docs/build @@ -95,6 +97,7 @@ COPY --from=build /install/gui/src/toolkitMetadata.json /app/src/toolkitMetadata COPY --from=build /install/gui/src/exampleUploads.json /app/src/exampleUploads.json COPY --from=build /install/gui/src/unitsData.js /app/src/unitsData.js COPY --from=build /install/gui/src/northTools.json /app/src/northTools.json +ENV NODE_OPTIONS "--max_old_space_size=3072" RUN yarn run build # Third, create a slim final image diff --git a/MANIFEST.in b/MANIFEST.in index fe15e110b..e875bf231 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,7 +7,7 @@ include requirements.txt include auto_complete_install.sh include setup.json recursive-include nomad/app/static/gui/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png -recursive-include docs/build/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png +recursive-include site/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png recursive-include dependencies/parsers/ metadata.yaml recursive-include dependencies/parsers/nexus/nexusparser/definitions/base_classes/ *.xml recursive-include dependencies/parsers/nexus/nexusparser/definitions/applications/ *.xml diff --git a/pyproject.toml b/pyproject.toml index 47c30c334..4b8d0c1c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [build-system] requires = ["setuptools"] # requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] -build-backend = "setuptools.build_meta" +# build-backend = "setuptools.build_meta" [project] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index b763636cd..000000000 --- a/requirements.txt +++ /dev/null @@ -1,119 +0,0 @@ -# install -pip -wheel -pyyaml==6.0 -numpy==1.21.2 -pandas==1.3.5 -fastentrypoints==0.12 -cython>=0.19 -future==0.18.2 - -# nomad -nptyping==1.4.4 -cachetools==4.2.4 -docstring-parser==0.12 -Pint==0.17 -orjson==3.6.0 -click==7.1.2 -requests==2.27.1 -pytz==2021.1 -aniso8601==7.0.0 -ase==3.19.0 -python-keycloak==0.26.1 -elasticsearch-dsl==7.4.0 -pydantic==1.9.1 -jmespath==0.10.0 -h5grove==1.0.0 -httpx==0.22.0 -memoization==0.4.0 - -# [parsing] -netCDF4==1.5.4 -h5py==3.6.0 -hjson==3.0.2 -scipy==1.7.1 -scikit-learn==0.24.2 -python-magic==0.4.24 -panedr==0.2 -parmed==3.0.0 -mdtraj==1.9.6 -mdanalysis -lxml==4.7.1 -xarray==0.19.0 -phonopy==2.11.0 -pymatgen==2022.0.17 -asr==0.4.1 -bitarray==2.3.5 -xrdtools==0.1.1 -openpyxl==3.0.9 - -# [infrastructure] -optimade[mongo]==0.18.0 -structlog==20.1.0 -elasticsearch==7.17.1 -msgpack==0.5.6 -celery[redis]==4.4.7 -mongoengine==0.19.1 -pymongo==3.12.1 -Werkzeug==2.0.3 -itsdangerous==2.0.1 -passlib==1.7.4 -python-logstash==0.4.6 -gitpython==3.1.24 -m2r==0.2.1 -zipstream-new==1.1.5 -bagit==1.8.1 -bcrypt==3.2.0 -filelock==3.3.1 -cryptography==3.3.2 -pyjwt[crypto]==1.7.1 -cryptography==3.3.2 -jsonschema[format]==4.1.2 -runstats==2.0.0 -pyyaml==6.0 -tabulate==0.8.9 -bs4==0.0.1 -html5lib==1.1 -zipfile37==0.1.3 -basicauth==0.4.1 -inflection==0.5.1 -unidecode==1.3.2 -python-json-logger==2.0.2 -recommonmark==0.7.1 -jinja2==3.0.3 -rdflib==5.0.0 -fastapi==0.65.3 -uvicorn[standard]==0.13.4 -python-multipart==0.0.5 -jupyterhub==1.4.2 -dockerspawner==12.1.0 -oauthenticator==14.2.0 -validators==0.18.2 -aiofiles==0.8.0 -joblib==1.1.0 - -# [dev] -markupsafe==2.0.1 -setuptools==57.5.0 -gitpython==3.1.24 -mypy==0.750 -typed-ast==1.4.2 -astroid==2.5.1 -pylint==2.3.1 -pylint_plugin_utils==0.5 -pylint_mongoengine==0.3.3 -pycodestyle==2.8.0 -pytest==3.10.0 -pytest-timeout==1.4.2 -pytest-cov==2.7.1 -rope==0.21.0 -names==0.3.0 -essential_generators==1.0 -twine==3.4.2 -python-gitlab==2.10.1 -devtools==0.8.0 -markupsafe==2.0.1 -mkdocs==1.2.3 -mkdocs-material==8.1.1 -mkdocs-material-extensions==1.0.3 -mkdocs-macros-plugin==0.6.3 -- GitLab From 01106e2b47e83f7dcc6eb6d2026efce813696beb Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:10:35 +0200 Subject: [PATCH 03/19] copy build gui into the app --- generate_app_artifacts.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100755 generate_app_artifacts.sh diff --git a/generate_app_artifacts.sh b/generate_app_artifacts.sh new file mode 100755 index 000000000..ddfa7d283 --- /dev/null +++ b/generate_app_artifacts.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cp -r gui/build/* nomad/app/static/gui +rm nomad/app/static/gui/env.js \ No newline at end of file -- GitLab From e9882a8a8bd3c46fa77ebbb1786cc3e5983f27c6 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:11:17 +0200 Subject: [PATCH 04/19] build docs for the app --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index f8385918d..26a7ff603 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,6 +2,7 @@ site_name: NOMAD Documentation site_description: | The documentation for NOMAD v1. site_author: The NOMAD Authors +site_dir: nomad/app/static/docs nav: - Introduction: index.md - web.md -- GitLab From 49793d2ff103ddde4f88b7f18a5bfd290edad2d7 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:11:50 +0200 Subject: [PATCH 05/19] update path --- nomad/app/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nomad/app/main.py b/nomad/app/main.py index 04b2a1067..5c940fc86 100644 --- a/nomad/app/main.py +++ b/nomad/app/main.py @@ -65,7 +65,7 @@ app.mount(f'{app_base}/optimade', optimade_app) app.mount(f'{app_base}/h5grove', h5grove_app) dist_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../dist')) -docs_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../docs/build')) +docs_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static/docs')) gui_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static/gui')) if not os.path.exists(gui_folder): os.makedirs(gui_folder) -- GitLab From 0e87b75f824846ff28a0283e607abe53d75a4931 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:12:55 +0200 Subject: [PATCH 06/19] cleanup packages and their data --- MANIFEST.in | 14 ------------- pyproject.toml | 53 ++++++++++++++++++++++---------------------------- 2 files changed, 23 insertions(+), 44 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index e875bf231..54a26a510 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,15 +1 @@ -recursive-include dependencies/optimade-python-tools *.txt *.g *.py *.ini *.json -recursive-include nomad *.json *.j2 *.md *.yaml -include nomad/units/*.txt -include README.md -include LICENSE.txt -include requirements.txt -include auto_complete_install.sh -include setup.json -recursive-include nomad/app/static/gui/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png -recursive-include site/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png recursive-include dependencies/parsers/ metadata.yaml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/base_classes/ *.xml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/applications/ *.xml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/contributed_definitions/ *.xml -include dependencies/parsers/nexus/nexusparser/definitions/ *.xsd diff --git a/pyproject.toml b/pyproject.toml index 4b8d0c1c7..a06dd1cbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,6 @@ [build-system] requires = ["setuptools"] -# requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] -# build-backend = "setuptools.build_meta" +build-backend = "setuptools.build_meta" [project] @@ -10,10 +9,10 @@ version = '1.1.2' description = 'The NOvel MAterials Discovery (NOMAD) Python package' readme = "README.md" authors = [ - {name = "NOMAD Laboratory"}, - {email = 'markus.scheidgen@physik.hu-berlin.de'} + { name = "NOMAD Laboratory" }, + { email = 'markus.scheidgen@physik.hu-berlin.de' }, ] -license = {file = "LICENSE"} +license = { file = "LICENSE" } requires-python = ">=3.6" dependencies = [ 'nptyping==1.4.4', @@ -38,9 +37,8 @@ dependencies = [ [project.urls] homepage = "https://nomad-lab.eu/" -# documentation = "https://readthedocs.org" +documentation = "https://nomad-lab.eu/prod/v1/docs" repository = 'https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR' -# changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md" [project.optional-dependencies] parsing = [ @@ -61,7 +59,7 @@ parsing = [ 'asr==0.4.1', 'bitarray==2.3.5', 'xrdtools==0.1.1', - 'openpyxl==3.0.9' + 'openpyxl==3.0.9', ] infrastructure = [ 'optimade[mongo]==0.18.0', @@ -137,28 +135,23 @@ dev = [ [project.scripts] nomad = "nomad.cli:run_cli" - -# [tool.setuptools] -# include-package-data = true -# # This is already the default behaviour if your are using -# # pyproject.toml to configure your build. -# # You can deactivate that with `include-package-data = false` - # Package discovery -# [tool.setuptools.packages] -# find = {} # Scan the project directory with the default parameters -# OR [tool.setuptools.packages.find] -# All the following settings are optional: -where = ["."] # ["."] by default -include = ["nomad*", "dependencies*"] # ["*"] by default -exclude = ["*.tests*"] # empty by default -# namespaces = false # true by default -# -# [tool.setuptools.package-data] -# "nexusparser.definitions.base_classes" = ["*.xml"] -# "nexusparser.definitions.applications" = ["*.xml"] -# "nexusparser.definitions.contributed_definitions" = ["*.xml"] -# "nexusparser.definitions" = ["*.xsd"] -# "optimade.grammar" = ["*.lark"] +where = [ + ".", + "dependencies/matid", + "dependencies/nomad-dos-fingerprints", + "dependencies/parsers/atomistic", + "dependencies/parsers/database", + "dependencies/parsers/eelsdb", + "dependencies/parsers/electronic", + "dependencies/parsers/nexus", + "dependencies/parsers/workflow", +] +exclude = ["tests*"] +namespaces = false + +[tool.setuptools.package-data] +nomad = ["**/*.json", "**/*.j2", "**/*.md", "**/*.txt", "app/static/**/*"] +nexusparser = ["definitions/**/*.xml", "definitions/**/*.xsd"] -- GitLab From fc0d9ba3939b75e62fc20a65d1897042d61c89d1 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:43:55 +0200 Subject: [PATCH 07/19] fix requirements [skip ci] --- dependencies/parsers/electronic | 2 +- dependencies/parsers/nexus | 2 +- dependencies/parsers/workflow | 2 +- requirements-all.txt | 65 ++++++++++++++------------------- 4 files changed, 30 insertions(+), 41 deletions(-) diff --git a/dependencies/parsers/electronic b/dependencies/parsers/electronic index 5c077f48a..9c1c9a5ad 160000 --- a/dependencies/parsers/electronic +++ b/dependencies/parsers/electronic @@ -1 +1 @@ -Subproject commit 5c077f48adcda8e6ec2f5cfb2220adc04100c3e6 +Subproject commit 9c1c9a5adaa4a50fee11292751ba29bb2ef3db2f diff --git a/dependencies/parsers/nexus b/dependencies/parsers/nexus index 78b721318..baba4b0ed 160000 --- a/dependencies/parsers/nexus +++ b/dependencies/parsers/nexus @@ -1 +1 @@ -Subproject commit 78b721318cb824e404234702c0aef19a7d8b6dba +Subproject commit baba4b0ed3388c7b603347bce375d2c1bbf2314b diff --git a/dependencies/parsers/workflow b/dependencies/parsers/workflow index ed2592c09..a7090a14c 160000 --- a/dependencies/parsers/workflow +++ b/dependencies/parsers/workflow @@ -1 +1 @@ -Subproject commit ed2592c0953ebad15e59ca6f60b2b7eb3c2afcd1 +Subproject commit a7090a14cd19416ded74c33ebb1d8581402af1c0 diff --git a/requirements-all.txt b/requirements-all.txt index fcce79d9c..a61292685 100644 --- a/requirements-all.txt +++ b/requirements-all.txt @@ -1,15 +1,3 @@ -# dependencies/parsers/nexus -# git diff requirements.txt -# -# -click==7.1.2 -# +click>=7.1.2 -# -# dependencies/parsers/workflow -# git diff requirements.txt -# -xarray==0.19.0 -# +xarray~=0.19 -# -h5py==3.4.0 -# +h5py~=3.4 # # This file is autogenerated by pip-compile with python 3.7 # To update, run: @@ -22,7 +10,7 @@ alembic==1.8.1 # via jupyterhub amqp==2.6.1 # via kombu aniso8601==7.0.0 # via nomad-lab (pyproject.toml) anyio==3.6.1 # via httpcore, watchfiles -arrow==1.2.2 # via isoduration +arrow==1.2.3 # via isoduration ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) astroid==2.5.1 # via nomad-lab (pyproject.toml), pylint @@ -45,17 +33,17 @@ bs4==0.0.1 # via nomad-lab (pyproject.toml) cached-property==1.5.2 # via fqdn, h5py cachetools==4.2.4 # via nomad-lab (pyproject.toml) celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) -certifi==2022.6.15 # via elasticsearch, httpcore, httpx, requests +certifi==2022.9.14 # via elasticsearch, httpcore, httpx, requests certipy==0.1.3 # via jupyterhub cffi==1.15.1 # via bcrypt, cryptography -cftime==1.6.1 # via netcdf4 +cftime==1.6.2 # via netcdf4 charset-normalizer==2.0.12 # via httpx, requests chronic==0.3.4 # via matid click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, mkdocs, nomad-lab (pyproject.toml), uvicorn colorama==0.4.5 # via twine commonmark==0.9.1 # via recommonmark coverage==6.4.4 # via pytest-cov -cryptography==37.0.4 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cryptography==38.0.1 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl cycler==0.11.0 # via matplotlib decorator==5.1.1 # via validators defusedxml==0.7.1 # via odfpy @@ -69,7 +57,7 @@ docutils==0.19 # via m2r, readme-renderer, recommonmark, sphinx ecdsa==0.18.0 # via python-jose elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) -email-validator==1.2.1 # via optimade +email-validator==1.3.0 # via optimade entrypoints==0.4 # via jupyterhub escapism==1.0.1 # via dockerspawner essential-generators==1.0 # via nomad-lab (pyproject.toml) @@ -78,7 +66,7 @@ executing==0.10.0 # via devtools fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade filelock==3.3.1 # via nomad-lab (pyproject.toml) flask==2.2.2 # via asr -fonttools==4.37.1 # via matplotlib +fonttools==4.37.3 # via matplotlib fqdn==1.5.1 # via jsonschema future==0.18.2 # via matid, uncertainties ghp-import==2.1.0 # via mkdocs @@ -93,9 +81,9 @@ h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, hjson==3.0.2 # via nomad-lab (pyproject.toml) html5lib==1.1 # via nomad-lab (pyproject.toml) httpcore==0.14.7 # via httpx -httptools==0.4.0 # via uvicorn +httptools==0.5.0 # via uvicorn httpx==0.22.0 # via nomad-lab (pyproject.toml) -idna==3.3 # via anyio, email-validator, jsonschema, requests, rfc3986 +idna==3.4 # via anyio, email-validator, jsonschema, requests, rfc3986 imagesize==1.4.1 # via sphinx importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, keyring, kombu, mako, markdown, mkdocs, pint, pluggy, redis, sphinx, sqlalchemy, twine, xarray importlib-resources==5.9.0 # via alembic @@ -104,6 +92,7 @@ isodate==0.6.1 # via rdflib isoduration==20.11.0 # via jsonschema isort==4.3.21 # via pylint itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jaraco-classes==3.2.2 # via keyring jinja2==3.0.3 # via flask, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml), sphinx jmespath==0.10.0 # via nomad-lab (pyproject.toml) joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn @@ -111,14 +100,14 @@ jsonpointer==2.3 # via jsonschema jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) jupyter-telemetry==0.1.0 # via jupyterhub jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator -keyring==23.8.2 # via twine +keyring==23.9.3 # via twine kiwisolver==1.4.4 # via matplotlib kombu==4.6.11 # via celery lark-parser==0.12.0 # via optimade lazy-object-proxy==1.7.1 # via astroid lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools m2r==0.2.1 # via nomad-lab (pyproject.toml) -mako==1.2.1 # via alembic +mako==1.2.2 # via alembic markdown==3.4.1 # via mkdocs, mkdocs-material, pymdown-extensions markupsafe==2.1.1 # via jinja2, mako, nomad-lab (pyproject.toml), werkzeug matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) @@ -136,8 +125,8 @@ mkdocs-material-extensions==1.0.3 # via mkdocs-material, nomad-lab (pyproject.t mmtf-python==1.1.3 # via mdanalysis mongoengine==0.24.2 # via nomad-lab (pyproject.toml) mongomock==4.1.2 # via optimade -monty==2022.4.26 # via pymatgen -more-itertools==8.14.0 # via pytest +monty==2022.9.9 # via pymatgen +more-itertools==8.14.0 # via jaraco-classes, pytest mpmath==1.2.1 # via sympy mrcfile==1.4.2 # via griddataformats msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) @@ -149,7 +138,7 @@ networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdan nptyping==1.4.4 # via nomad-lab (pyproject.toml) numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) -oauthlib==3.2.0 # via jupyterhub +oauthlib==3.2.1 # via jupyterhub odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt openpyxl==3.0.9 # via nomad-lab (pyproject.toml) optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) @@ -185,12 +174,12 @@ pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimad pyopenssl==22.0.0 # via certipy pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib pyrsistent==0.18.1 # via jsonschema -pyscf==2.0.1 # via -r dependencies/parsers/electronic/requirements.txt +pyscf==2.0.1 ; sys_platform == "darwin" # via -r dependencies/parsers/electronic/requirements.txt pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pytest-cov, pytest-timeout pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas -python-dotenv==0.20.0 # via uvicorn +python-dotenv==0.21.0 # via uvicorn python-gitlab==2.10.1 # via nomad-lab (pyproject.toml) python-jose==3.3.0 # via python-keycloak python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) @@ -202,7 +191,7 @@ pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), panda pyyaml==6.0 # via mkdocs, mkdocs-macros-plugin, nomad-lab (pyproject.toml), phonopy, pyaml, pyyaml-env-tag, uvicorn pyyaml-env-tag==0.1 # via mkdocs rdflib==5.0.0 # via nomad-lab (pyproject.toml) -readme-renderer==37.0 # via twine +readme-renderer==37.1 # via twine recommonmark==0.7.1 # via nomad-lab (pyproject.toml) redis==4.3.4 # via celery requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, sphinx, twine @@ -221,10 +210,10 @@ sentinels==1.0.0 # via mongomock six==1.16.0 # via asttokens, astunparse, basicauth, bcrypt, bleach, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators sklearn==0.0 # via matid smmap==5.0.0 # via gitdb -sniffio==1.2.0 # via anyio, httpcore, httpx +sniffio==1.3.0 # via anyio, httpcore, httpx snowballstemmer==2.2.0 # via sphinx soupsieve==2.3.2.post1 # via beautifulsoup4 -spglib==2.0.0 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +spglib==2.0.1 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen sphinx==5.1.1 # via recommonmark sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -232,18 +221,18 @@ sphinxcontrib-htmlhelp==2.0.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==1.4.40 # via alembic, jupyterhub +sqlalchemy==1.4.41 # via alembic, jupyterhub starlette==0.14.2 # via fastapi structlog==20.1.0 # via nomad-lab (pyproject.toml) sympy==1.10.1 # via pymatgen tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen -tenacity==8.0.1 # via plotly -termcolor==1.1.0 # via mkdocs-macros-plugin +tenacity==8.1.0 # via plotly +termcolor==2.0.1 # via mkdocs-macros-plugin threadpoolctl==3.1.0 # via mdanalysis, scikit-learn tifffile==2021.11.2 # via h5grove tornado==6.2 # via jupyterhub -tqdm==4.64.0 # via mdanalysis, twine -traitlets==5.3.0 # via jupyter-telemetry, jupyterhub +tqdm==4.64.1 # via mdanalysis, twine +traitlets==5.4.0 # via jupyter-telemetry, jupyterhub twine==3.4.2 # via nomad-lab (pyproject.toml) typed-ast==1.4.2 # via astroid, mypy, nomad-lab (pyproject.toml) typing-extensions==4.3.0 # via anyio, arrow, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray @@ -253,14 +242,14 @@ unidecode==1.3.2 # via nomad-lab (pyproject.toml) uri-template==1.2.0 # via jsonschema urllib3==1.26.12 # via docker, elasticsearch, requests uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) -uvloop==0.16.0 # via uvicorn +uvloop==0.17.0 # via uvicorn validators==0.18.2 # via nomad-lab (pyproject.toml) vine==1.3.0 # via amqp, celery watchdog==2.1.9 # via mkdocs -watchfiles==0.16.1 # via uvicorn +watchfiles==0.17.0 # via uvicorn webcolors==1.12 # via jsonschema webencodings==0.5.1 # via bleach, html5lib -websocket-client==1.4.0 # via docker +websocket-client==1.4.1 # via docker websockets==10.3 # via uvicorn werkzeug==2.2.2 # via flask wheel==0.37.1 # via astunparse -- GitLab From 89784ac293dc3c1014209e9a1accbdc2c13986dd Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Thu, 22 Sep 2022 00:44:00 +0200 Subject: [PATCH 08/19] cleanup [skip ci] --- .gitmodules | 3 --- dependencies/parsers/example | 1 - generate_app_artifacts.sh | 4 ---- generate_sdist.sh | 21 +++++++++++++++++++++ mkdocs.yml | 1 - 5 files changed, 21 insertions(+), 9 deletions(-) delete mode 160000 dependencies/parsers/example delete mode 100755 generate_app_artifacts.sh create mode 100755 generate_sdist.sh diff --git a/.gitmodules b/.gitmodules index ecb757aca..326af5de6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,9 +8,6 @@ path = dependencies/parsers/eelsdb url = https://github.com/nomad-coe/nomad-parser-eelsdb.git branch = master -[submodule "dependencies/parsers/example"] - path = dependencies/parsers/example - url = https://github.com/nomad-coe/nomad-parser-example.git [submodule "dependencies/nomad-remote-tools-hub"] path = dependencies/nomad-remote-tools-hub url = https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub.git diff --git a/dependencies/parsers/example b/dependencies/parsers/example deleted file mode 160000 index 8d8b58027..000000000 --- a/dependencies/parsers/example +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8d8b58027e9ab4e61077b94d19e74bc0645419a3 diff --git a/generate_app_artifacts.sh b/generate_app_artifacts.sh deleted file mode 100755 index ddfa7d283..000000000 --- a/generate_app_artifacts.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cp -r gui/build/* nomad/app/static/gui -rm nomad/app/static/gui/env.js \ No newline at end of file diff --git a/generate_sdist.sh b/generate_sdist.sh new file mode 100755 index 000000000..a2c7cfa72 --- /dev/null +++ b/generate_sdist.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +./gitinfo.sh + +./generate_docs_artifacts.sh +mkdocs build +mkdir -p nomad/app/static/docs +cp -r site/* nomad/app/static/docs/ + + +./generate_gui_artifacts.sh +cd gui +yarn +yarn build +cd .. +mkdir -p nomad/app/static/gui +cp -r gui/build/* nomad/app/static/gui +rm nomad/app/static/gui/env.js + +rm -rf nomad_lab.egg-info dist build +python setup.py sdist \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 26a7ff603..f8385918d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,6 @@ site_name: NOMAD Documentation site_description: | The documentation for NOMAD v1. site_author: The NOMAD Authors -site_dir: nomad/app/static/docs nav: - Introduction: index.md - web.md -- GitLab From f64648675d3caf37c6fca9f8e786f0454e9aef0d Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Thu, 22 Sep 2022 10:23:31 +0200 Subject: [PATCH 09/19] main requirements --- requirements.txt | 237 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..51171f787 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,237 @@ +# +# This file is autogenerated by pip-compile with python 3.7 +# To update, run: +# +# pip-compile --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/matid/setup.py dependencies/nomad-dos-fingerprints/setup.py dependencies/parsers/atomistic/requirements.txt dependencies/parsers/database/requirements.txt dependencies/parsers/eelsdb/requirements.txt dependencies/parsers/electronic/requirements.txt dependencies/parsers/nexus/requirements.txt dependencies/parsers/workflow/requirements.txt pyproject.toml +# +aiofiles==0.8.0 # via nomad-lab (pyproject.toml) +alabaster==0.7.12 # via sphinx +alembic==1.8.1 # via jupyterhub +amqp==2.6.1 # via kombu +aniso8601==7.0.0 # via nomad-lab (pyproject.toml) +anyio==3.6.1 # via httpcore, watchfiles +arrow==1.2.3 # via isoduration +ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) +asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +astroid==2.12.10 # via pylint +astunparse==1.6.3 # via mdtraj +async-generator==1.10 # via jupyterhub +async-timeout==4.0.2 # via redis +atomicwrites==1.4.1 # via pytest +attrs==22.1.0 # via jsonschema, pytest +babel==2.10.3 # via sphinx +bagit==1.8.1 # via nomad-lab (pyproject.toml) +basicauth==0.4.1 # via nomad-lab (pyproject.toml) +bcrypt==3.2.0 # via nomad-lab (pyproject.toml) +beautifulsoup4==4.11.1 # via bs4 +billiard==3.6.4.0 # via celery +biopython==1.79 # via mdanalysis +bitarray==2.3.5 # via nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nomad-lab (pyproject.toml) +bs4==0.0.1 # via nomad-lab (pyproject.toml) +cached-property==1.5.2 # via fqdn, h5py +cachetools==4.2.4 # via nomad-lab (pyproject.toml) +celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) +certifi==2022.9.14 # via elasticsearch, httpcore, httpx, requests +certipy==0.1.3 # via jupyterhub +cffi==1.15.1 # via bcrypt, cryptography +cftime==1.6.2 # via netcdf4 +charset-normalizer==2.0.12 # via httpx, requests +chronic==0.3.4 # via matid +click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, nomad-lab (pyproject.toml), uvicorn +commonmark==0.9.1 # via recommonmark +coverage==6.4.4 # via pytest-cov +cryptography==38.0.1 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cycler==0.11.0 # via matplotlib +decorator==5.1.1 # via validators +defusedxml==0.7.1 # via odfpy +deprecated==1.2.13 # via redis +dnspython==2.2.1 # via email-validator +docker==6.0.0 # via dockerspawner +dockerspawner==12.1.0 # via nomad-lab (pyproject.toml) +docstring-parser==0.12 # via nomad-lab (pyproject.toml) +docutils==0.19 # via m2r, recommonmark, sphinx +ecdsa==0.18.0 # via python-jose +elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) +elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) +email-validator==1.3.0 # via optimade +entrypoints==0.4 # via jupyterhub +escapism==1.0.1 # via dockerspawner +et-xmlfile==1.1.0 # via openpyxl +fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade +filelock==3.3.1 # via nomad-lab (pyproject.toml) +flask==2.2.2 # via asr +fonttools==4.37.3 # via matplotlib +fqdn==1.5.1 # via jsonschema +future==0.18.2 # via matid, uncertainties +gitdb==4.0.9 # via gitpython +gitpython==3.1.24 # via nomad-lab (pyproject.toml) +greenlet==1.1.3 # via sqlalchemy +griddataformats==0.7.0 # via mdanalysis +gsd==2.6.0 # via mdanalysis +h11==0.12.0 # via httpcore, uvicorn +h5grove==1.0.0 # via nomad-lab (pyproject.toml) +h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, h5grove, nomad-lab (pyproject.toml), phonopy, pyscf +hjson==3.0.2 # via nomad-lab (pyproject.toml) +html5lib==1.1 # via nomad-lab (pyproject.toml) +httpcore==0.14.7 # via httpx +httptools==0.5.0 # via uvicorn +httpx==0.22.0 # via nomad-lab (pyproject.toml) +idna==3.4 # via anyio, email-validator, jsonschema, requests, rfc3986 +imagesize==1.4.1 # via sphinx +importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, kombu, mako, pint, pluggy, redis, sphinx, sqlalchemy, xarray +importlib-resources==5.9.0 # via alembic +inflection==0.5.1 # via nomad-lab (pyproject.toml) +isodate==0.6.1 # via rdflib +isoduration==20.11.0 # via jsonschema +isort==4.3.21 # via pylint +itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jinja2==3.0.3 # via flask, jupyterhub, nomad-lab (pyproject.toml), sphinx +jmespath==0.10.0 # via nomad-lab (pyproject.toml) +joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn +jsonpointer==2.3 # via jsonschema +jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) +jupyter-telemetry==0.1.0 # via jupyterhub +jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator +kiwisolver==1.4.4 # via matplotlib +kombu==4.6.11 # via celery +lark-parser==0.12.0 # via optimade +lazy-object-proxy==1.7.1 # via astroid +lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools +m2r==0.2.1 # via nomad-lab (pyproject.toml) +mako==1.2.2 # via alembic +markupsafe==2.1.1 # via jinja2, mako, werkzeug +matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +matplotlib==3.5.3 # via ase, asr, mdanalysis, phonopy, pymatgen +mccabe==0.6.1 # via pylint +mdanalysis==2.1.0 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +mdtraj==1.9.6 # via nomad-lab (pyproject.toml) +memoization==0.4.0 # via nomad-lab (pyproject.toml) +mistune==2.0.4 # via m2r +mmtf-python==1.1.3 # via mdanalysis +mongoengine==0.24.2 # via nomad-lab (pyproject.toml) +mongomock==4.1.2 # via optimade +monty==2022.9.9 # via pymatgen +more-itertools==8.14.0 # via pytest +mpmath==1.2.1 # via sympy +mrcfile==1.4.2 # via griddataformats +msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) +mypy==0.730 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +mypy-extensions==0.4.3 # via mypy +netcdf4==1.5.4 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdanalysis, pymatgen +nptyping==1.4.4 # via nomad-lab (pyproject.toml) +numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools +oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) +oauthlib==3.2.1 # via jupyterhub +odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt +openpyxl==3.0.9 # via nomad-lab (pyproject.toml) +optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) +orjson==3.6.0 # via h5grove, nomad-lab (pyproject.toml) +packaging==21.3 # via docker, matplotlib, mdanalysis, mongomock, pint, redis, sphinx +palettable==3.3.0 # via pymatgen +pamela==1.0.0 # via jupyterhub +pandas==1.3.5 # via -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, panedr, pymatgen, xarray +panedr==0.2 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +parmed==3.0.0 # via nomad-lab (pyproject.toml) +passlib==1.7.4 # via nomad-lab (pyproject.toml) +phonopy==2.11.0 # via -r dependencies/parsers/workflow/requirements.txt, asr, nomad-lab (pyproject.toml) +pillow==9.2.0 # via matplotlib +pint==0.17 # via nomad-lab (pyproject.toml) +plotly==5.10.0 # via asr, pymatgen +pluggy==1.0.0 # via pytest +prometheus-client==0.14.1 # via jupyterhub +py==1.11.0 # via pytest +pyaml==21.10.1 # via -r dependencies/parsers/nexus/requirements.txt +pyasn1==0.4.8 # via python-jose, rsa +pycodestyle==2.8.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pycparser==2.21 # via cffi +pydantic==1.9.1 # via fastapi, nomad-lab (pyproject.toml), optimade +pygments==2.13.0 # via sphinx +pyjwt[crypto]==1.7.1 # via nomad-lab (pyproject.toml) +pylint==2.3.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, pylint-plugin-utils +pylint-plugin-utils==0.5 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pymatgen==2022.0.17 # via asr, nomad-lab (pyproject.toml) +pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimade +pyopenssl==22.0.0 # via certipy +pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib +pyrsistent==0.18.1 # via jsonschema +pyscf==2.0.1 ; sys_platform == "darwin" # via -r dependencies/parsers/electronic/requirements.txt +pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, pytest-cov, pytest-timeout +pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, jupyterhub, matplotlib, pandas +python-dotenv==0.21.0 # via uvicorn +python-jose==3.3.0 # via python-keycloak +python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) +python-keycloak==0.26.1 # via nomad-lab (pyproject.toml) +python-logstash==0.4.6 # via nomad-lab (pyproject.toml) +python-magic==0.4.24 # via nomad-lab (pyproject.toml) +python-multipart==0.0.5 # via nomad-lab (pyproject.toml) +pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), pandas +pyyaml==6.0 # via nomad-lab (pyproject.toml), phonopy, pyaml, uvicorn +rdflib==5.0.0 # via nomad-lab (pyproject.toml) +recommonmark==0.7.1 # via nomad-lab (pyproject.toml) +redis==4.3.4 # via celery +requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-keycloak, sphinx +rfc3339-validator==0.1.4 # via jsonschema +rfc3986[idna2008]==1.5.0 # via httpx +rfc3987==1.3.8 # via jsonschema +rsa==4.9 # via python-jose +ruamel-yaml==0.17.21 # via jupyter-telemetry, pymatgen +ruamel-yaml-clib==0.2.6 # via ruamel-yaml +runstats==2.0.0 # via nomad-lab (pyproject.toml) +scikit-learn==0.24.2 # via matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml), sklearn +scipy==1.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, ase, griddataformats, matid, matid (dependencies/matid/setup.py), mdanalysis, mdtraj, nomad-lab (pyproject.toml), pymatgen, pyscf, scikit-learn +sentinels==1.0.0 # via mongomock +six==1.16.0 # via astunparse, basicauth, bcrypt, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators +sklearn==0.0 # via matid +smmap==5.0.0 # via gitdb +sniffio==1.3.0 # via anyio, httpcore, httpx +snowballstemmer==2.2.0 # via sphinx +soupsieve==2.3.2.post1 # via beautifulsoup4 +spglib==2.0.1 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +sphinx==5.1.1 # via recommonmark +sphinxcontrib-applehelp==1.0.2 # via sphinx +sphinxcontrib-devhelp==1.0.2 # via sphinx +sphinxcontrib-htmlhelp==2.0.0 # via sphinx +sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-qthelp==1.0.3 # via sphinx +sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sqlalchemy==1.4.41 # via alembic, jupyterhub +starlette==0.14.2 # via fastapi +structlog==20.1.0 # via nomad-lab (pyproject.toml) +sympy==1.10.1 # via pymatgen +tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen +tenacity==8.1.0 # via plotly +threadpoolctl==3.1.0 # via mdanalysis, scikit-learn +tifffile==2021.11.2 # via h5grove +tornado==6.2 # via jupyterhub +tqdm==4.64.1 # via mdanalysis +traitlets==5.4.0 # via jupyter-telemetry, jupyterhub +typed-ast==1.4.3 # via astroid, mypy +typing-extensions==4.3.0 # via anyio, arrow, astroid, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray +typish==1.9.3 # via nptyping +uncertainties==3.1.7 # via pymatgen +unidecode==1.3.2 # via nomad-lab (pyproject.toml) +uri-template==1.2.0 # via jsonschema +urllib3==1.26.12 # via docker, elasticsearch, requests +uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) +uvloop==0.17.0 # via uvicorn +validators==0.18.2 # via nomad-lab (pyproject.toml) +vine==1.3.0 # via amqp, celery +watchfiles==0.17.0 # via uvicorn +webcolors==1.12 # via jsonschema +webencodings==0.5.1 # via html5lib +websocket-client==1.4.1 # via docker +websockets==10.3 # via uvicorn +werkzeug==2.2.2 # via flask +wheel==0.37.1 # via astunparse +wrapt==1.14.1 # via astroid, deprecated +xarray==0.20.2 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +xrdtools==0.1.1 # via nomad-lab (pyproject.toml) +zipfile37==0.1.3 # via nomad-lab (pyproject.toml) +zipp==3.8.1 # via importlib-metadata, importlib-resources +zipstream-new==1.1.5 # via nomad-lab (pyproject.toml) + +# The following packages are considered to be unsafe in a requirements file: +# setuptools -- GitLab From d3708f91bd29f7f4c8fba17d070f67a0a6c807b6 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Tue, 20 Sep 2022 10:21:33 +0200 Subject: [PATCH 10/19] new setup process --- pyproject.toml | 164 +++++++++++++++++++++++- requirements-all.txt | 275 ++++++++++++++++++++++++++++++++++++++++ setup.py | 293 +------------------------------------------ 3 files changed, 440 insertions(+), 292 deletions(-) create mode 100644 requirements-all.txt diff --git a/pyproject.toml b/pyproject.toml index 829d4b6f3..47c30c334 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,164 @@ [build-system] -requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] \ No newline at end of file +requires = ["setuptools"] +# requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] +build-backend = "setuptools.build_meta" + + +[project] +name = 'nomad-lab' +version = '1.1.2' +description = 'The NOvel MAterials Discovery (NOMAD) Python package' +readme = "README.md" +authors = [ + {name = "NOMAD Laboratory"}, + {email = 'markus.scheidgen@physik.hu-berlin.de'} +] +license = {file = "LICENSE"} +requires-python = ">=3.6" +dependencies = [ + 'nptyping==1.4.4', + 'cachetools==4.2.4', + 'docstring-parser==0.12', + 'Pint==0.17', + 'orjson==3.6.0', + 'click>=7.1.2', + 'requests==2.27.1', + 'pytz==2021.1', + 'aniso8601==7.0.0', + 'ase==3.19.0', + 'python-keycloak==0.26.1', + 'elasticsearch-dsl==7.4.0', + 'pydantic==1.9.1', + 'jmespath==0.10.0', + 'h5grove==1.0.0', + 'httpx==0.22.0', + 'memoization==0.4.0', + 'lxml~=4.6', +] + +[project.urls] +homepage = "https://nomad-lab.eu/" +# documentation = "https://readthedocs.org" +repository = 'https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR' +# changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md" + +[project.optional-dependencies] +parsing = [ + 'netCDF4==1.5.4', + 'h5py==3.6.0', + 'hjson==3.0.2', + 'scipy==1.7.1', + 'scikit-learn==0.24.2', + 'matid==0.6.1', + 'python-magic==0.4.24', + 'panedr==0.2', + 'parmed==3.0.0', + 'mdtraj==1.9.6', + 'mdanalysis', + 'xarray~=0.19', + 'phonopy==2.11.0', + 'pymatgen==2022.0.17', + 'asr==0.4.1', + 'bitarray==2.3.5', + 'xrdtools==0.1.1', + 'openpyxl==3.0.9' +] +infrastructure = [ + 'optimade[mongo]==0.18.0', + 'structlog==20.1.0', + 'elasticsearch==7.17.1', + 'msgpack', + 'celery[redis]==4.4.7', + 'mongoengine', + 'pymongo==3.12.1', + # 'Werkzeug', + 'itsdangerous==2.0.1', + 'passlib==1.7.4', + 'python-logstash==0.4.6', + 'gitpython==3.1.24', + 'm2r==0.2.1', + 'zipstream-new==1.1.5', + 'bagit==1.8.1', + 'bcrypt==3.2.0', + 'filelock==3.3.1', + 'pyjwt[crypto]==1.7.1', + 'cryptography', + 'jsonschema[format]==4.1.2', + 'runstats==2.0.0', + 'pyyaml==6.0', + 'tabulate==0.8.9', + 'bs4==0.0.1', + 'html5lib==1.1', + 'zipfile37==0.1.3', + 'basicauth==0.4.1', + 'inflection==0.5.1', + 'unidecode==1.3.2', + 'python-json-logger==2.0.2', + 'recommonmark==0.7.1', + 'jinja2==3.0.3', + 'rdflib==5.0.0', + 'fastapi==0.65.3', + 'uvicorn[standard]', + 'python-multipart==0.0.5', + 'jupyterhub==1.4.2', + 'dockerspawner==12.1.0', + 'oauthenticator==14.2.0', + 'validators==0.18.2', + 'aiofiles==0.8.0', + 'joblib==1.1.0', +] +dev = [ + 'markupsafe', + 'setuptools==57.5.0', + 'gitpython==3.1.24', + 'mypy==0.730', + 'typed-ast==1.4.2', + 'astroid==2.5.1', + 'pylint==2.3.1', + 'pylint_plugin_utils==0.5', + 'pylint_mongoengine==0.3.3', + 'pycodestyle==2.8.0', + 'pytest==3.10.0', + 'pytest-timeout==1.4.2', + 'pytest-cov==2.7.1', + 'rope==0.21.0', + 'names==0.3.0', + 'essential_generators==1.0', + 'twine==3.4.2', + 'python-gitlab==2.10.1', + 'devtools==0.8.0', + 'mkdocs==1.2.3', + 'mkdocs-material==8.1.1', + 'mkdocs-material-extensions==1.0.3', + 'mkdocs-macros-plugin==0.6.3', +] + + +[project.scripts] +nomad = "nomad.cli:run_cli" + + +# [tool.setuptools] +# include-package-data = true +# # This is already the default behaviour if your are using +# # pyproject.toml to configure your build. +# # You can deactivate that with `include-package-data = false` + +# Package discovery + +# [tool.setuptools.packages] +# find = {} # Scan the project directory with the default parameters +# OR +[tool.setuptools.packages.find] +# All the following settings are optional: +where = ["."] # ["."] by default +include = ["nomad*", "dependencies*"] # ["*"] by default +exclude = ["*.tests*"] # empty by default +# namespaces = false # true by default +# +# [tool.setuptools.package-data] +# "nexusparser.definitions.base_classes" = ["*.xml"] +# "nexusparser.definitions.applications" = ["*.xml"] +# "nexusparser.definitions.contributed_definitions" = ["*.xml"] +# "nexusparser.definitions" = ["*.xsd"] +# "optimade.grammar" = ["*.lark"] diff --git a/requirements-all.txt b/requirements-all.txt new file mode 100644 index 000000000..fcce79d9c --- /dev/null +++ b/requirements-all.txt @@ -0,0 +1,275 @@ +# dependencies/parsers/nexus +# git diff requirements.txt +# +# -click==7.1.2 +# +click>=7.1.2 +# +# dependencies/parsers/workflow +# git diff requirements.txt +# -xarray==0.19.0 +# +xarray~=0.19 +# -h5py==3.4.0 +# +h5py~=3.4 +# +# This file is autogenerated by pip-compile with python 3.7 +# To update, run: +# +# pip-compile --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-all.txt dependencies/matid/setup.py dependencies/nomad-dos-fingerprints/setup.py dependencies/parsers/atomistic/requirements.txt dependencies/parsers/database/requirements.txt dependencies/parsers/eelsdb/requirements.txt dependencies/parsers/electronic/requirements.txt dependencies/parsers/nexus/requirements.txt dependencies/parsers/workflow/requirements.txt pyproject.toml +# +aiofiles==0.8.0 # via nomad-lab (pyproject.toml) +alabaster==0.7.12 # via sphinx +alembic==1.8.1 # via jupyterhub +amqp==2.6.1 # via kombu +aniso8601==7.0.0 # via nomad-lab (pyproject.toml) +anyio==3.6.1 # via httpcore, watchfiles +arrow==1.2.2 # via isoduration +ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) +asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +astroid==2.5.1 # via nomad-lab (pyproject.toml), pylint +asttokens==2.0.8 # via devtools +astunparse==1.6.3 # via mdtraj +async-generator==1.10 # via jupyterhub +async-timeout==4.0.2 # via redis +atomicwrites==1.4.1 # via pytest +attrs==22.1.0 # via jsonschema, pytest +babel==2.10.3 # via sphinx +bagit==1.8.1 # via nomad-lab (pyproject.toml) +basicauth==0.4.1 # via nomad-lab (pyproject.toml) +bcrypt==3.2.0 # via nomad-lab (pyproject.toml) +beautifulsoup4==4.11.1 # via bs4 +billiard==3.6.4.0 # via celery +biopython==1.79 # via mdanalysis +bitarray==2.3.5 # via nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nomad-lab (pyproject.toml) +bleach==5.0.1 # via readme-renderer +bs4==0.0.1 # via nomad-lab (pyproject.toml) +cached-property==1.5.2 # via fqdn, h5py +cachetools==4.2.4 # via nomad-lab (pyproject.toml) +celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) +certifi==2022.6.15 # via elasticsearch, httpcore, httpx, requests +certipy==0.1.3 # via jupyterhub +cffi==1.15.1 # via bcrypt, cryptography +cftime==1.6.1 # via netcdf4 +charset-normalizer==2.0.12 # via httpx, requests +chronic==0.3.4 # via matid +click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, mkdocs, nomad-lab (pyproject.toml), uvicorn +colorama==0.4.5 # via twine +commonmark==0.9.1 # via recommonmark +coverage==6.4.4 # via pytest-cov +cryptography==37.0.4 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cycler==0.11.0 # via matplotlib +decorator==5.1.1 # via validators +defusedxml==0.7.1 # via odfpy +deprecated==1.2.13 # via redis +devtools==0.8.0 # via nomad-lab (pyproject.toml) +dnspython==2.2.1 # via email-validator +docker==6.0.0 # via dockerspawner +dockerspawner==12.1.0 # via nomad-lab (pyproject.toml) +docstring-parser==0.12 # via nomad-lab (pyproject.toml) +docutils==0.19 # via m2r, readme-renderer, recommonmark, sphinx +ecdsa==0.18.0 # via python-jose +elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) +elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) +email-validator==1.2.1 # via optimade +entrypoints==0.4 # via jupyterhub +escapism==1.0.1 # via dockerspawner +essential-generators==1.0 # via nomad-lab (pyproject.toml) +et-xmlfile==1.1.0 # via openpyxl +executing==0.10.0 # via devtools +fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade +filelock==3.3.1 # via nomad-lab (pyproject.toml) +flask==2.2.2 # via asr +fonttools==4.37.1 # via matplotlib +fqdn==1.5.1 # via jsonschema +future==0.18.2 # via matid, uncertainties +ghp-import==2.1.0 # via mkdocs +gitdb==4.0.9 # via gitpython +gitpython==3.1.24 # via nomad-lab (pyproject.toml) +greenlet==1.1.3 # via sqlalchemy +griddataformats==0.7.0 # via mdanalysis +gsd==2.6.0 # via mdanalysis +h11==0.12.0 # via httpcore, uvicorn +h5grove==1.0.0 # via nomad-lab (pyproject.toml) +h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, h5grove, nomad-lab (pyproject.toml), phonopy, pyscf +hjson==3.0.2 # via nomad-lab (pyproject.toml) +html5lib==1.1 # via nomad-lab (pyproject.toml) +httpcore==0.14.7 # via httpx +httptools==0.4.0 # via uvicorn +httpx==0.22.0 # via nomad-lab (pyproject.toml) +idna==3.3 # via anyio, email-validator, jsonschema, requests, rfc3986 +imagesize==1.4.1 # via sphinx +importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, keyring, kombu, mako, markdown, mkdocs, pint, pluggy, redis, sphinx, sqlalchemy, twine, xarray +importlib-resources==5.9.0 # via alembic +inflection==0.5.1 # via nomad-lab (pyproject.toml) +isodate==0.6.1 # via rdflib +isoduration==20.11.0 # via jsonschema +isort==4.3.21 # via pylint +itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jinja2==3.0.3 # via flask, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml), sphinx +jmespath==0.10.0 # via nomad-lab (pyproject.toml) +joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn +jsonpointer==2.3 # via jsonschema +jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) +jupyter-telemetry==0.1.0 # via jupyterhub +jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator +keyring==23.8.2 # via twine +kiwisolver==1.4.4 # via matplotlib +kombu==4.6.11 # via celery +lark-parser==0.12.0 # via optimade +lazy-object-proxy==1.7.1 # via astroid +lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools +m2r==0.2.1 # via nomad-lab (pyproject.toml) +mako==1.2.1 # via alembic +markdown==3.4.1 # via mkdocs, mkdocs-material, pymdown-extensions +markupsafe==2.1.1 # via jinja2, mako, nomad-lab (pyproject.toml), werkzeug +matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +matplotlib==3.5.3 # via ase, asr, mdanalysis, phonopy, pymatgen +mccabe==0.6.1 # via pylint +mdanalysis==2.1.0 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +mdtraj==1.9.6 # via nomad-lab (pyproject.toml) +memoization==0.4.0 # via nomad-lab (pyproject.toml) +mergedeep==1.3.4 # via mkdocs +mistune==2.0.4 # via m2r +mkdocs==1.2.3 # via mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml) +mkdocs-macros-plugin==0.6.3 # via nomad-lab (pyproject.toml) +mkdocs-material==8.1.1 # via nomad-lab (pyproject.toml) +mkdocs-material-extensions==1.0.3 # via mkdocs-material, nomad-lab (pyproject.toml) +mmtf-python==1.1.3 # via mdanalysis +mongoengine==0.24.2 # via nomad-lab (pyproject.toml) +mongomock==4.1.2 # via optimade +monty==2022.4.26 # via pymatgen +more-itertools==8.14.0 # via pytest +mpmath==1.2.1 # via sympy +mrcfile==1.4.2 # via griddataformats +msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) +mypy==0.730 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +mypy-extensions==0.4.3 # via mypy +names==0.3.0 # via nomad-lab (pyproject.toml) +netcdf4==1.5.4 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdanalysis, pymatgen +nptyping==1.4.4 # via nomad-lab (pyproject.toml) +numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools +oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) +oauthlib==3.2.0 # via jupyterhub +odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt +openpyxl==3.0.9 # via nomad-lab (pyproject.toml) +optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) +orjson==3.6.0 # via h5grove, nomad-lab (pyproject.toml) +packaging==21.3 # via docker, matplotlib, mdanalysis, mkdocs, mongomock, pint, redis, sphinx +palettable==3.3.0 # via pymatgen +pamela==1.0.0 # via jupyterhub +pandas==1.3.5 # via -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, panedr, pymatgen, xarray +panedr==0.2 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +parmed==3.0.0 # via nomad-lab (pyproject.toml) +passlib==1.7.4 # via nomad-lab (pyproject.toml) +phonopy==2.11.0 # via -r dependencies/parsers/workflow/requirements.txt, asr, nomad-lab (pyproject.toml) +pillow==9.2.0 # via matplotlib +pint==0.17 # via nomad-lab (pyproject.toml) +pkginfo==1.8.3 # via twine +plotly==5.10.0 # via asr, pymatgen +pluggy==1.0.0 # via pytest +prometheus-client==0.14.1 # via jupyterhub +py==1.11.0 # via pytest +pyaml==21.10.1 # via -r dependencies/parsers/nexus/requirements.txt +pyasn1==0.4.8 # via python-jose, rsa +pycodestyle==2.8.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +pycparser==2.21 # via cffi +pydantic==1.9.1 # via fastapi, nomad-lab (pyproject.toml), optimade +pygments==2.13.0 # via mkdocs-material, readme-renderer, sphinx +pyjwt[crypto]==1.7.1 # via nomad-lab (pyproject.toml) +pylint==2.3.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pylint-mongoengine, pylint-plugin-utils +pylint-mongoengine==0.3.3 # via nomad-lab (pyproject.toml) +pylint-plugin-utils==0.5 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pylint-mongoengine +pymatgen==2022.0.17 # via asr, nomad-lab (pyproject.toml) +pymdown-extensions==9.5 # via mkdocs-material +pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimade +pyopenssl==22.0.0 # via certipy +pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib +pyrsistent==0.18.1 # via jsonschema +pyscf==2.0.1 # via -r dependencies/parsers/electronic/requirements.txt +pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pytest-cov, pytest-timeout +pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas +python-dotenv==0.20.0 # via uvicorn +python-gitlab==2.10.1 # via nomad-lab (pyproject.toml) +python-jose==3.3.0 # via python-keycloak +python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) +python-keycloak==0.26.1 # via nomad-lab (pyproject.toml) +python-logstash==0.4.6 # via nomad-lab (pyproject.toml) +python-magic==0.4.24 # via nomad-lab (pyproject.toml) +python-multipart==0.0.5 # via nomad-lab (pyproject.toml) +pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), pandas +pyyaml==6.0 # via mkdocs, mkdocs-macros-plugin, nomad-lab (pyproject.toml), phonopy, pyaml, pyyaml-env-tag, uvicorn +pyyaml-env-tag==0.1 # via mkdocs +rdflib==5.0.0 # via nomad-lab (pyproject.toml) +readme-renderer==37.0 # via twine +recommonmark==0.7.1 # via nomad-lab (pyproject.toml) +redis==4.3.4 # via celery +requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, sphinx, twine +requests-toolbelt==0.9.1 # via python-gitlab, twine +rfc3339-validator==0.1.4 # via jsonschema +rfc3986[idna2008]==1.5.0 # via httpx, twine +rfc3987==1.3.8 # via jsonschema +rope==0.21.0 # via nomad-lab (pyproject.toml) +rsa==4.9 # via python-jose +ruamel-yaml==0.17.21 # via jupyter-telemetry, pymatgen +ruamel-yaml-clib==0.2.6 # via ruamel-yaml +runstats==2.0.0 # via nomad-lab (pyproject.toml) +scikit-learn==0.24.2 # via matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml), sklearn +scipy==1.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, ase, griddataformats, matid, matid (dependencies/matid/setup.py), mdanalysis, mdtraj, nomad-lab (pyproject.toml), pymatgen, pyscf, scikit-learn +sentinels==1.0.0 # via mongomock +six==1.16.0 # via asttokens, astunparse, basicauth, bcrypt, bleach, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators +sklearn==0.0 # via matid +smmap==5.0.0 # via gitdb +sniffio==1.2.0 # via anyio, httpcore, httpx +snowballstemmer==2.2.0 # via sphinx +soupsieve==2.3.2.post1 # via beautifulsoup4 +spglib==2.0.0 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +sphinx==5.1.1 # via recommonmark +sphinxcontrib-applehelp==1.0.2 # via sphinx +sphinxcontrib-devhelp==1.0.2 # via sphinx +sphinxcontrib-htmlhelp==2.0.0 # via sphinx +sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-qthelp==1.0.3 # via sphinx +sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sqlalchemy==1.4.40 # via alembic, jupyterhub +starlette==0.14.2 # via fastapi +structlog==20.1.0 # via nomad-lab (pyproject.toml) +sympy==1.10.1 # via pymatgen +tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen +tenacity==8.0.1 # via plotly +termcolor==1.1.0 # via mkdocs-macros-plugin +threadpoolctl==3.1.0 # via mdanalysis, scikit-learn +tifffile==2021.11.2 # via h5grove +tornado==6.2 # via jupyterhub +tqdm==4.64.0 # via mdanalysis, twine +traitlets==5.3.0 # via jupyter-telemetry, jupyterhub +twine==3.4.2 # via nomad-lab (pyproject.toml) +typed-ast==1.4.2 # via astroid, mypy, nomad-lab (pyproject.toml) +typing-extensions==4.3.0 # via anyio, arrow, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray +typish==1.9.3 # via nptyping +uncertainties==3.1.7 # via pymatgen +unidecode==1.3.2 # via nomad-lab (pyproject.toml) +uri-template==1.2.0 # via jsonschema +urllib3==1.26.12 # via docker, elasticsearch, requests +uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) +uvloop==0.16.0 # via uvicorn +validators==0.18.2 # via nomad-lab (pyproject.toml) +vine==1.3.0 # via amqp, celery +watchdog==2.1.9 # via mkdocs +watchfiles==0.16.1 # via uvicorn +webcolors==1.12 # via jsonschema +webencodings==0.5.1 # via bleach, html5lib +websocket-client==1.4.0 # via docker +websockets==10.3 # via uvicorn +werkzeug==2.2.2 # via flask +wheel==0.37.1 # via astunparse +wrapt==1.12.1 # via astroid, deprecated +xarray==0.20.2 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +xrdtools==0.1.1 # via nomad-lab (pyproject.toml) +zipfile37==0.1.3 # via nomad-lab (pyproject.toml) +zipp==3.8.1 # via importlib-metadata, importlib-resources +zipstream-new==1.1.5 # via nomad-lab (pyproject.toml) + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.py b/setup.py index cffd58698..606849326 100644 --- a/setup.py +++ b/setup.py @@ -1,292 +1,3 @@ -# -# Copyright The NOMAD Authors. -# -# This file is part of NOMAD. See https://nomad-lab.eu for further info. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +from setuptools import setup -from setuptools import setup, find_packages -from subprocess import call -from setuptools.command.install import install as setup_install -import runpy -import os -import sys -import json -import re -import fastentrypoints # pylint: disable=unused-import - -''' -This setup.py works differently for creating a distribution than installing for -development. The idea is that for distributions, we compile the requirements, packages, and -data files from all dependencies and install everything under one package called 'nomad-lab'. -For development we install each dependency as its own project. This is mainly due to -pip's limitation of not being able to install from multiple source folders in develop -mode. - -The compilation process can by run with ``python setup.py compile``. It will create a -file with setup kwargs calles ``./setup.json``. If this file exists setup will be called -with compiled args. If this file does not exist, setup will be called with regular args. - -This setup makes use of ``extras_require``. The extras are parsing, infrastructure, dev, -and all. Where all is the union of the other ones. The extras are parsed from the -requirements.txt where specific comments are used to assign an extra to requirements. -''' - - -ignore_extra_requires = ['optimade'] -''' Dependencies where the extra_requires should not be added ''' - - -def parse_requirements(): - ''' - Parses the requirements.txt file to extras install and extra requirements. - Sections headed with # [extra] are assigned to the 'extra' extra. - - Returns: - Tuple with install and extra requires passible to :func:`setuptools.setup`. - ''' - with open('requirements.txt', 'rt') as f: - lines = f.readlines() - - extras_require = {} - requires = [] - all_requires = [] - current = None - for line in lines: - line = line.strip() - - if line == '': - continue - - match = re.match(r'^#\s*\[([a-zA-Z0-9_]+)\]$', line) - if match: - extra = match.group(1) - current = list() - extras_require[extra] = current - elif line.startswith('#'): - continue - else: - line = line.split('#')[0].strip() - if current is None: - requires.append(line) - else: - current.append(line) - all_requires.append(line) - - extras_require['all'] = all_requires - - return requires, extras_require - - -class install(setup_install): - def __post_install(self, dir): - if os.name == 'posix': - call(['./auto_complete_install.sh']) - - def run(self): - setup_install.run(self) - self.execute(self.__post_install, (self.install_lib, ), msg='installing autocompletion') - - -def compile_dependency_setup_kwargs(paths, **kwargs): - import setuptools - import distutils.core as distutils_core - - # collect all kwargs from all setup.pys - results = {} - current = {} - - def patched_setup(*args, **kwargs): - assert len(args) == 0 - assert current['name'] not in results, 'current is %s' % current['name'] - - results[current['name']] = { - 'meta': dict(**current), - 'kwargs': kwargs - } - - if len(kwargs) > 0: - current['name'] = kwargs.get('name', 'nomad') - current['directory'] = './' - current['setup.py'] = './setup.py' - patched_setup(**kwargs) - - setuptoolss = [setuptools, distutils_core] - orig_setups = [] - for st in setuptoolss: - orig_setups.append((st, getattr(st, 'setup'))) - setattr(st, 'setup', patched_setup) - - for path in paths: - for root, _, files in os.walk(path): - for file in files: - if os.path.basename(file) == 'setup.py': - setup_path = os.path.join(root, file) - current['name'] = os.path.basename(os.path.dirname(setup_path)) - current['directory'] = os.path.dirname(setup_path) - current['setup.py'] = setup_path - cwd = os.getcwd() - os.chdir(os.path.dirname(setup_path)) - try: - runpy.run_path(file, run_name='__main__') - except Exception: - import traceback - traceback.print_exc() - print('Could not run %s' % setup_path) - sys.exit(1) - finally: - os.chdir(cwd) - - for st, setup in orig_setups: - setattr(st, 'setup', setup) - - # combine the kwargs - all_packages = [] - all_package_dir = {} - all_package_data = {} - all_install_requires = {} - all_names = set() - for _, setup_data in results.items(): - meta = setup_data['meta'] - local_kwargs = setup_data['kwargs'] - - if 'name' in local_kwargs: - all_names.add(local_kwargs['name']) - - name = local_kwargs.get('name', meta['name']) - - # 1. packages, package_dir - package_dir = local_kwargs.get('package_dir', {'': './'}) - packages = local_kwargs.get('packages', []) - - assert len(package_dir) == 1 - assert '' in package_dir - - for package in packages: - root = package.split('.')[0] - if root not in package_dir and root not in all_package_dir: - all_package_dir[root] = os.path.normpath( - os.path.join(meta['directory'], package_dir[''], root)) - all_packages.append(package) - - # 2. package_data - all_package_data.update(**local_kwargs.get('package_data', {})) - - # 3. requires - local_install_requires = set() - if name not in ignore_extra_requires: - for extra_require in local_kwargs.get('extras_require', {}).values(): - for require in extra_require: - local_install_requires.add(require) - - for require in local_kwargs.get('install_requires', []): - local_install_requires.add(require) - all_install_requires[name] = local_install_requires - - # automatically add parser deps - for _, setup_data in results.items(): - if 'parsers' in setup_data['meta']['setup.py']: - parsing = kwargs.setdefault('extras_require', {}).setdefault('parsing', []) - all = kwargs.setdefault('extras_require', {}).setdefault('all', []) - for require in setup_data['kwargs'].get('install_requires', []): - if require not in parsing: - parsing.append(require) - all.append(require) - - def replace_own_packages(requires): - ''' replaces nomad dependencies with their requirements ''' - for other in all_names: - if other in requires: - requires.remove(other) - requires.extend(all_install_requires[other]) - - # remove dups - sorted_requires = sorted(requires) - sorted_normalized = [re.match(r'^([a-zA-Z0-9_\.\-]*).*$', r).group(1) for r in sorted_requires] - to_remove = [] - for i, require in enumerate(sorted_normalized): - if i + 1 < len(sorted_requires) and require == sorted_normalized[i + 1]: - to_remove.append(i) - for i in to_remove: - requires.remove(sorted_requires[i]) - - # run twice because dependencies can be dependencies of dependencies - for _ in range(0, 2): - for extra_require in kwargs.get('extras_require', {}).values(): - replace_own_packages(extra_require) - replace_own_packages(kwargs.get('install_requires', [])) - - kwargs.update(**{ - 'package_dir': all_package_dir, - 'packages': all_packages, - 'package_data': all_package_data - }) - - return kwargs - - -def setup_kwargs(): - from nomad import config - - install_requires, extras_require = parse_requirements() - with open("README.md", "r") as fh: - long_description = fh.read() - - return dict( - name='nomad-lab', - author='NOMAD Laboratory', - author_email='markus.scheidgen@physik.hu-berlin.de', - url='https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR', - version=config.meta.version, - license='APACHE 2.0', - description='The NOvel MAterials Discovery (NOMAD) Python package', - long_description=long_description, - long_description_content_type="text/markdown", - package_dir={'': './'}, - packages=['nomad.%s' % pkg for pkg in find_packages('./nomad')] + ['nomad'], - setup_requires=['pip', 'setuptools', 'wheel', 'fastentrypoints', 'numpy', 'pyyaml'], - install_requires=install_requires, - extras_require=extras_require, - include_package_data=True, - python_requires='>=3.6', - entry_points={ - 'console_scripts': [ - 'nomad = nomad.cli:run_cli' - ] - } - ) - - -if __name__ == '__main__': - if len(sys.argv) == 2 and sys.argv[1] == 'compile': - kwargs = compile_dependency_setup_kwargs(['dependencies'], **setup_kwargs()) - kwargs['package_data']['optimade.grammar'] = ['*.lark'] - with open('setup.json', 'wt') as f: - json.dump(kwargs, f, indent=2) - sys.exit(0) - - if len(sys.argv) == 2 and sys.argv[1] == 'dry': - import pprint - pprint.pprint( - compile_dependency_setup_kwargs(['dependencies'], **setup_kwargs())) - sys.exit(0) - - if os.path.exists('setup.json'): - with open('setup.json', 'rt') as f: - kwargs = json.load(f) - - else: - kwargs = setup_kwargs() - - setup(cmdclass={'install': install}, **kwargs) +setup() -- GitLab From ed21a74232d22aa26c273b48e3abdc85e05db319 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Tue, 20 Sep 2022 15:15:55 +0200 Subject: [PATCH 11/19] fix setup --- Dockerfile | 5 +- MANIFEST.in | 2 +- pyproject.toml | 2 +- requirements.txt | 119 ----------------------------------------------- 4 files changed, 6 insertions(+), 122 deletions(-) delete mode 100644 requirements.txt diff --git a/Dockerfile b/Dockerfile index 9d710cd88..ff4502bcf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,8 +67,10 @@ RUN rm -rf /pymolfile # Copy files and install nomad@FAIRDI WORKDIR /install COPY . /install -RUN python setup.py compile +# RUN python setup.py compile +RUN pip install -r requirements-all.txt RUN pip install .[all] +RUN ./dependencies.sh RUN ./generate_gui_artifacts.sh RUN ./generate_docs_artifacts.sh RUN mkdocs build && mv site docs/build @@ -95,6 +97,7 @@ COPY --from=build /install/gui/src/toolkitMetadata.json /app/src/toolkitMetadata COPY --from=build /install/gui/src/exampleUploads.json /app/src/exampleUploads.json COPY --from=build /install/gui/src/unitsData.js /app/src/unitsData.js COPY --from=build /install/gui/src/northTools.json /app/src/northTools.json +ENV NODE_OPTIONS "--max_old_space_size=3072" RUN yarn run build # Third, create a slim final image diff --git a/MANIFEST.in b/MANIFEST.in index fe15e110b..e875bf231 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,7 +7,7 @@ include requirements.txt include auto_complete_install.sh include setup.json recursive-include nomad/app/static/gui/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png -recursive-include docs/build/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png +recursive-include site/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png recursive-include dependencies/parsers/ metadata.yaml recursive-include dependencies/parsers/nexus/nexusparser/definitions/base_classes/ *.xml recursive-include dependencies/parsers/nexus/nexusparser/definitions/applications/ *.xml diff --git a/pyproject.toml b/pyproject.toml index 47c30c334..4b8d0c1c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [build-system] requires = ["setuptools"] # requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] -build-backend = "setuptools.build_meta" +# build-backend = "setuptools.build_meta" [project] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index b763636cd..000000000 --- a/requirements.txt +++ /dev/null @@ -1,119 +0,0 @@ -# install -pip -wheel -pyyaml==6.0 -numpy==1.21.2 -pandas==1.3.5 -fastentrypoints==0.12 -cython>=0.19 -future==0.18.2 - -# nomad -nptyping==1.4.4 -cachetools==4.2.4 -docstring-parser==0.12 -Pint==0.17 -orjson==3.6.0 -click==7.1.2 -requests==2.27.1 -pytz==2021.1 -aniso8601==7.0.0 -ase==3.19.0 -python-keycloak==0.26.1 -elasticsearch-dsl==7.4.0 -pydantic==1.9.1 -jmespath==0.10.0 -h5grove==1.0.0 -httpx==0.22.0 -memoization==0.4.0 - -# [parsing] -netCDF4==1.5.4 -h5py==3.6.0 -hjson==3.0.2 -scipy==1.7.1 -scikit-learn==0.24.2 -python-magic==0.4.24 -panedr==0.2 -parmed==3.0.0 -mdtraj==1.9.6 -mdanalysis -lxml==4.7.1 -xarray==0.19.0 -phonopy==2.11.0 -pymatgen==2022.0.17 -asr==0.4.1 -bitarray==2.3.5 -xrdtools==0.1.1 -openpyxl==3.0.9 - -# [infrastructure] -optimade[mongo]==0.18.0 -structlog==20.1.0 -elasticsearch==7.17.1 -msgpack==0.5.6 -celery[redis]==4.4.7 -mongoengine==0.19.1 -pymongo==3.12.1 -Werkzeug==2.0.3 -itsdangerous==2.0.1 -passlib==1.7.4 -python-logstash==0.4.6 -gitpython==3.1.24 -m2r==0.2.1 -zipstream-new==1.1.5 -bagit==1.8.1 -bcrypt==3.2.0 -filelock==3.3.1 -cryptography==3.3.2 -pyjwt[crypto]==1.7.1 -cryptography==3.3.2 -jsonschema[format]==4.1.2 -runstats==2.0.0 -pyyaml==6.0 -tabulate==0.8.9 -bs4==0.0.1 -html5lib==1.1 -zipfile37==0.1.3 -basicauth==0.4.1 -inflection==0.5.1 -unidecode==1.3.2 -python-json-logger==2.0.2 -recommonmark==0.7.1 -jinja2==3.0.3 -rdflib==5.0.0 -fastapi==0.65.3 -uvicorn[standard]==0.13.4 -python-multipart==0.0.5 -jupyterhub==1.4.2 -dockerspawner==12.1.0 -oauthenticator==14.2.0 -validators==0.18.2 -aiofiles==0.8.0 -joblib==1.1.0 - -# [dev] -markupsafe==2.0.1 -setuptools==57.5.0 -gitpython==3.1.24 -mypy==0.750 -typed-ast==1.4.2 -astroid==2.5.1 -pylint==2.3.1 -pylint_plugin_utils==0.5 -pylint_mongoengine==0.3.3 -pycodestyle==2.8.0 -pytest==3.10.0 -pytest-timeout==1.4.2 -pytest-cov==2.7.1 -rope==0.21.0 -names==0.3.0 -essential_generators==1.0 -twine==3.4.2 -python-gitlab==2.10.1 -devtools==0.8.0 -markupsafe==2.0.1 -mkdocs==1.2.3 -mkdocs-material==8.1.1 -mkdocs-material-extensions==1.0.3 -mkdocs-macros-plugin==0.6.3 -- GitLab From a502487d9c36d500a2dba8e39f04c33e00f86253 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:10:35 +0200 Subject: [PATCH 12/19] copy build gui into the app --- generate_app_artifacts.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100755 generate_app_artifacts.sh diff --git a/generate_app_artifacts.sh b/generate_app_artifacts.sh new file mode 100755 index 000000000..ddfa7d283 --- /dev/null +++ b/generate_app_artifacts.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cp -r gui/build/* nomad/app/static/gui +rm nomad/app/static/gui/env.js \ No newline at end of file -- GitLab From d5259258db7711864e908c80197046112c11c456 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:11:17 +0200 Subject: [PATCH 13/19] build docs for the app --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 70a691c73..0b7855dbf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,6 +2,7 @@ site_name: NOMAD Documentation site_description: | The documentation for NOMAD v1. site_author: The NOMAD Authors +site_dir: nomad/app/static/docs nav: - Introduction: index.md - web.md -- GitLab From 3d1fb6cd2e3a13bf54a1d0c6b49e4785f3541a09 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:11:50 +0200 Subject: [PATCH 14/19] update path --- nomad/app/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nomad/app/main.py b/nomad/app/main.py index 04b2a1067..5c940fc86 100644 --- a/nomad/app/main.py +++ b/nomad/app/main.py @@ -65,7 +65,7 @@ app.mount(f'{app_base}/optimade', optimade_app) app.mount(f'{app_base}/h5grove', h5grove_app) dist_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../dist')) -docs_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../docs/build')) +docs_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static/docs')) gui_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static/gui')) if not os.path.exists(gui_folder): os.makedirs(gui_folder) -- GitLab From 813f56e01cfbcba7eaa83dcf8b2df695eec0d23f Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:12:55 +0200 Subject: [PATCH 15/19] cleanup packages and their data --- MANIFEST.in | 14 ------------- pyproject.toml | 53 ++++++++++++++++++++++---------------------------- 2 files changed, 23 insertions(+), 44 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index e875bf231..54a26a510 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,15 +1 @@ -recursive-include dependencies/optimade-python-tools *.txt *.g *.py *.ini *.json -recursive-include nomad *.json *.j2 *.md *.yaml -include nomad/units/*.txt -include README.md -include LICENSE.txt -include requirements.txt -include auto_complete_install.sh -include setup.json -recursive-include nomad/app/static/gui/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png -recursive-include site/ *.css *.ico *.html *.json *.js *.map *.txt *.svg *.png recursive-include dependencies/parsers/ metadata.yaml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/base_classes/ *.xml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/applications/ *.xml -recursive-include dependencies/parsers/nexus/nexusparser/definitions/contributed_definitions/ *.xml -include dependencies/parsers/nexus/nexusparser/definitions/ *.xsd diff --git a/pyproject.toml b/pyproject.toml index 4b8d0c1c7..a06dd1cbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,6 @@ [build-system] requires = ["setuptools"] -# requires = ["pip", "setuptools", "wheel", "fastentrypoints", "numpy", "pyyaml"] -# build-backend = "setuptools.build_meta" +build-backend = "setuptools.build_meta" [project] @@ -10,10 +9,10 @@ version = '1.1.2' description = 'The NOvel MAterials Discovery (NOMAD) Python package' readme = "README.md" authors = [ - {name = "NOMAD Laboratory"}, - {email = 'markus.scheidgen@physik.hu-berlin.de'} + { name = "NOMAD Laboratory" }, + { email = 'markus.scheidgen@physik.hu-berlin.de' }, ] -license = {file = "LICENSE"} +license = { file = "LICENSE" } requires-python = ">=3.6" dependencies = [ 'nptyping==1.4.4', @@ -38,9 +37,8 @@ dependencies = [ [project.urls] homepage = "https://nomad-lab.eu/" -# documentation = "https://readthedocs.org" +documentation = "https://nomad-lab.eu/prod/v1/docs" repository = 'https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR' -# changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md" [project.optional-dependencies] parsing = [ @@ -61,7 +59,7 @@ parsing = [ 'asr==0.4.1', 'bitarray==2.3.5', 'xrdtools==0.1.1', - 'openpyxl==3.0.9' + 'openpyxl==3.0.9', ] infrastructure = [ 'optimade[mongo]==0.18.0', @@ -137,28 +135,23 @@ dev = [ [project.scripts] nomad = "nomad.cli:run_cli" - -# [tool.setuptools] -# include-package-data = true -# # This is already the default behaviour if your are using -# # pyproject.toml to configure your build. -# # You can deactivate that with `include-package-data = false` - # Package discovery -# [tool.setuptools.packages] -# find = {} # Scan the project directory with the default parameters -# OR [tool.setuptools.packages.find] -# All the following settings are optional: -where = ["."] # ["."] by default -include = ["nomad*", "dependencies*"] # ["*"] by default -exclude = ["*.tests*"] # empty by default -# namespaces = false # true by default -# -# [tool.setuptools.package-data] -# "nexusparser.definitions.base_classes" = ["*.xml"] -# "nexusparser.definitions.applications" = ["*.xml"] -# "nexusparser.definitions.contributed_definitions" = ["*.xml"] -# "nexusparser.definitions" = ["*.xsd"] -# "optimade.grammar" = ["*.lark"] +where = [ + ".", + "dependencies/matid", + "dependencies/nomad-dos-fingerprints", + "dependencies/parsers/atomistic", + "dependencies/parsers/database", + "dependencies/parsers/eelsdb", + "dependencies/parsers/electronic", + "dependencies/parsers/nexus", + "dependencies/parsers/workflow", +] +exclude = ["tests*"] +namespaces = false + +[tool.setuptools.package-data] +nomad = ["**/*.json", "**/*.j2", "**/*.md", "**/*.txt", "app/static/**/*"] +nexusparser = ["definitions/**/*.xml", "definitions/**/*.xsd"] -- GitLab From 15f00ce7009dabc6192cd7d59c27211edb2630b7 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Wed, 21 Sep 2022 16:43:55 +0200 Subject: [PATCH 16/19] fix requirements [skip ci] --- dependencies/parsers/electronic | 2 +- dependencies/parsers/nexus | 2 +- dependencies/parsers/workflow | 2 +- requirements-all.txt | 65 ++++++++++++++------------------- 4 files changed, 30 insertions(+), 41 deletions(-) diff --git a/dependencies/parsers/electronic b/dependencies/parsers/electronic index 5c077f48a..9c1c9a5ad 160000 --- a/dependencies/parsers/electronic +++ b/dependencies/parsers/electronic @@ -1 +1 @@ -Subproject commit 5c077f48adcda8e6ec2f5cfb2220adc04100c3e6 +Subproject commit 9c1c9a5adaa4a50fee11292751ba29bb2ef3db2f diff --git a/dependencies/parsers/nexus b/dependencies/parsers/nexus index 78b721318..baba4b0ed 160000 --- a/dependencies/parsers/nexus +++ b/dependencies/parsers/nexus @@ -1 +1 @@ -Subproject commit 78b721318cb824e404234702c0aef19a7d8b6dba +Subproject commit baba4b0ed3388c7b603347bce375d2c1bbf2314b diff --git a/dependencies/parsers/workflow b/dependencies/parsers/workflow index ed2592c09..a7090a14c 160000 --- a/dependencies/parsers/workflow +++ b/dependencies/parsers/workflow @@ -1 +1 @@ -Subproject commit ed2592c0953ebad15e59ca6f60b2b7eb3c2afcd1 +Subproject commit a7090a14cd19416ded74c33ebb1d8581402af1c0 diff --git a/requirements-all.txt b/requirements-all.txt index fcce79d9c..a61292685 100644 --- a/requirements-all.txt +++ b/requirements-all.txt @@ -1,15 +1,3 @@ -# dependencies/parsers/nexus -# git diff requirements.txt -# -# -click==7.1.2 -# +click>=7.1.2 -# -# dependencies/parsers/workflow -# git diff requirements.txt -# -xarray==0.19.0 -# +xarray~=0.19 -# -h5py==3.4.0 -# +h5py~=3.4 # # This file is autogenerated by pip-compile with python 3.7 # To update, run: @@ -22,7 +10,7 @@ alembic==1.8.1 # via jupyterhub amqp==2.6.1 # via kombu aniso8601==7.0.0 # via nomad-lab (pyproject.toml) anyio==3.6.1 # via httpcore, watchfiles -arrow==1.2.2 # via isoduration +arrow==1.2.3 # via isoduration ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) astroid==2.5.1 # via nomad-lab (pyproject.toml), pylint @@ -45,17 +33,17 @@ bs4==0.0.1 # via nomad-lab (pyproject.toml) cached-property==1.5.2 # via fqdn, h5py cachetools==4.2.4 # via nomad-lab (pyproject.toml) celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) -certifi==2022.6.15 # via elasticsearch, httpcore, httpx, requests +certifi==2022.9.14 # via elasticsearch, httpcore, httpx, requests certipy==0.1.3 # via jupyterhub cffi==1.15.1 # via bcrypt, cryptography -cftime==1.6.1 # via netcdf4 +cftime==1.6.2 # via netcdf4 charset-normalizer==2.0.12 # via httpx, requests chronic==0.3.4 # via matid click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, mkdocs, nomad-lab (pyproject.toml), uvicorn colorama==0.4.5 # via twine commonmark==0.9.1 # via recommonmark coverage==6.4.4 # via pytest-cov -cryptography==37.0.4 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cryptography==38.0.1 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl cycler==0.11.0 # via matplotlib decorator==5.1.1 # via validators defusedxml==0.7.1 # via odfpy @@ -69,7 +57,7 @@ docutils==0.19 # via m2r, readme-renderer, recommonmark, sphinx ecdsa==0.18.0 # via python-jose elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) -email-validator==1.2.1 # via optimade +email-validator==1.3.0 # via optimade entrypoints==0.4 # via jupyterhub escapism==1.0.1 # via dockerspawner essential-generators==1.0 # via nomad-lab (pyproject.toml) @@ -78,7 +66,7 @@ executing==0.10.0 # via devtools fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade filelock==3.3.1 # via nomad-lab (pyproject.toml) flask==2.2.2 # via asr -fonttools==4.37.1 # via matplotlib +fonttools==4.37.3 # via matplotlib fqdn==1.5.1 # via jsonschema future==0.18.2 # via matid, uncertainties ghp-import==2.1.0 # via mkdocs @@ -93,9 +81,9 @@ h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, hjson==3.0.2 # via nomad-lab (pyproject.toml) html5lib==1.1 # via nomad-lab (pyproject.toml) httpcore==0.14.7 # via httpx -httptools==0.4.0 # via uvicorn +httptools==0.5.0 # via uvicorn httpx==0.22.0 # via nomad-lab (pyproject.toml) -idna==3.3 # via anyio, email-validator, jsonschema, requests, rfc3986 +idna==3.4 # via anyio, email-validator, jsonschema, requests, rfc3986 imagesize==1.4.1 # via sphinx importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, keyring, kombu, mako, markdown, mkdocs, pint, pluggy, redis, sphinx, sqlalchemy, twine, xarray importlib-resources==5.9.0 # via alembic @@ -104,6 +92,7 @@ isodate==0.6.1 # via rdflib isoduration==20.11.0 # via jsonschema isort==4.3.21 # via pylint itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jaraco-classes==3.2.2 # via keyring jinja2==3.0.3 # via flask, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, nomad-lab (pyproject.toml), sphinx jmespath==0.10.0 # via nomad-lab (pyproject.toml) joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn @@ -111,14 +100,14 @@ jsonpointer==2.3 # via jsonschema jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) jupyter-telemetry==0.1.0 # via jupyterhub jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator -keyring==23.8.2 # via twine +keyring==23.9.3 # via twine kiwisolver==1.4.4 # via matplotlib kombu==4.6.11 # via celery lark-parser==0.12.0 # via optimade lazy-object-proxy==1.7.1 # via astroid lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools m2r==0.2.1 # via nomad-lab (pyproject.toml) -mako==1.2.1 # via alembic +mako==1.2.2 # via alembic markdown==3.4.1 # via mkdocs, mkdocs-material, pymdown-extensions markupsafe==2.1.1 # via jinja2, mako, nomad-lab (pyproject.toml), werkzeug matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) @@ -136,8 +125,8 @@ mkdocs-material-extensions==1.0.3 # via mkdocs-material, nomad-lab (pyproject.t mmtf-python==1.1.3 # via mdanalysis mongoengine==0.24.2 # via nomad-lab (pyproject.toml) mongomock==4.1.2 # via optimade -monty==2022.4.26 # via pymatgen -more-itertools==8.14.0 # via pytest +monty==2022.9.9 # via pymatgen +more-itertools==8.14.0 # via jaraco-classes, pytest mpmath==1.2.1 # via sympy mrcfile==1.4.2 # via griddataformats msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) @@ -149,7 +138,7 @@ networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdan nptyping==1.4.4 # via nomad-lab (pyproject.toml) numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) -oauthlib==3.2.0 # via jupyterhub +oauthlib==3.2.1 # via jupyterhub odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt openpyxl==3.0.9 # via nomad-lab (pyproject.toml) optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) @@ -185,12 +174,12 @@ pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimad pyopenssl==22.0.0 # via certipy pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib pyrsistent==0.18.1 # via jsonschema -pyscf==2.0.1 # via -r dependencies/parsers/electronic/requirements.txt +pyscf==2.0.1 ; sys_platform == "darwin" # via -r dependencies/parsers/electronic/requirements.txt pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), pytest-cov, pytest-timeout pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas -python-dotenv==0.20.0 # via uvicorn +python-dotenv==0.21.0 # via uvicorn python-gitlab==2.10.1 # via nomad-lab (pyproject.toml) python-jose==3.3.0 # via python-keycloak python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) @@ -202,7 +191,7 @@ pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), panda pyyaml==6.0 # via mkdocs, mkdocs-macros-plugin, nomad-lab (pyproject.toml), phonopy, pyaml, pyyaml-env-tag, uvicorn pyyaml-env-tag==0.1 # via mkdocs rdflib==5.0.0 # via nomad-lab (pyproject.toml) -readme-renderer==37.0 # via twine +readme-renderer==37.1 # via twine recommonmark==0.7.1 # via nomad-lab (pyproject.toml) redis==4.3.4 # via celery requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, sphinx, twine @@ -221,10 +210,10 @@ sentinels==1.0.0 # via mongomock six==1.16.0 # via asttokens, astunparse, basicauth, bcrypt, bleach, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators sklearn==0.0 # via matid smmap==5.0.0 # via gitdb -sniffio==1.2.0 # via anyio, httpcore, httpx +sniffio==1.3.0 # via anyio, httpcore, httpx snowballstemmer==2.2.0 # via sphinx soupsieve==2.3.2.post1 # via beautifulsoup4 -spglib==2.0.0 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +spglib==2.0.1 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen sphinx==5.1.1 # via recommonmark sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -232,18 +221,18 @@ sphinxcontrib-htmlhelp==2.0.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==1.4.40 # via alembic, jupyterhub +sqlalchemy==1.4.41 # via alembic, jupyterhub starlette==0.14.2 # via fastapi structlog==20.1.0 # via nomad-lab (pyproject.toml) sympy==1.10.1 # via pymatgen tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen -tenacity==8.0.1 # via plotly -termcolor==1.1.0 # via mkdocs-macros-plugin +tenacity==8.1.0 # via plotly +termcolor==2.0.1 # via mkdocs-macros-plugin threadpoolctl==3.1.0 # via mdanalysis, scikit-learn tifffile==2021.11.2 # via h5grove tornado==6.2 # via jupyterhub -tqdm==4.64.0 # via mdanalysis, twine -traitlets==5.3.0 # via jupyter-telemetry, jupyterhub +tqdm==4.64.1 # via mdanalysis, twine +traitlets==5.4.0 # via jupyter-telemetry, jupyterhub twine==3.4.2 # via nomad-lab (pyproject.toml) typed-ast==1.4.2 # via astroid, mypy, nomad-lab (pyproject.toml) typing-extensions==4.3.0 # via anyio, arrow, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray @@ -253,14 +242,14 @@ unidecode==1.3.2 # via nomad-lab (pyproject.toml) uri-template==1.2.0 # via jsonschema urllib3==1.26.12 # via docker, elasticsearch, requests uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) -uvloop==0.16.0 # via uvicorn +uvloop==0.17.0 # via uvicorn validators==0.18.2 # via nomad-lab (pyproject.toml) vine==1.3.0 # via amqp, celery watchdog==2.1.9 # via mkdocs -watchfiles==0.16.1 # via uvicorn +watchfiles==0.17.0 # via uvicorn webcolors==1.12 # via jsonschema webencodings==0.5.1 # via bleach, html5lib -websocket-client==1.4.0 # via docker +websocket-client==1.4.1 # via docker websockets==10.3 # via uvicorn werkzeug==2.2.2 # via flask wheel==0.37.1 # via astunparse -- GitLab From 74240f29d12594e40a3c691c91a988fe10570d3c Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Thu, 22 Sep 2022 00:44:00 +0200 Subject: [PATCH 17/19] cleanup [skip ci] --- .gitmodules | 3 --- dependencies/parsers/example | 1 - generate_app_artifacts.sh | 4 ---- generate_sdist.sh | 21 +++++++++++++++++++++ mkdocs.yml | 1 - 5 files changed, 21 insertions(+), 9 deletions(-) delete mode 160000 dependencies/parsers/example delete mode 100755 generate_app_artifacts.sh create mode 100755 generate_sdist.sh diff --git a/.gitmodules b/.gitmodules index ecb757aca..326af5de6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,9 +8,6 @@ path = dependencies/parsers/eelsdb url = https://github.com/nomad-coe/nomad-parser-eelsdb.git branch = master -[submodule "dependencies/parsers/example"] - path = dependencies/parsers/example - url = https://github.com/nomad-coe/nomad-parser-example.git [submodule "dependencies/nomad-remote-tools-hub"] path = dependencies/nomad-remote-tools-hub url = https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub.git diff --git a/dependencies/parsers/example b/dependencies/parsers/example deleted file mode 160000 index 8d8b58027..000000000 --- a/dependencies/parsers/example +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8d8b58027e9ab4e61077b94d19e74bc0645419a3 diff --git a/generate_app_artifacts.sh b/generate_app_artifacts.sh deleted file mode 100755 index ddfa7d283..000000000 --- a/generate_app_artifacts.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cp -r gui/build/* nomad/app/static/gui -rm nomad/app/static/gui/env.js \ No newline at end of file diff --git a/generate_sdist.sh b/generate_sdist.sh new file mode 100755 index 000000000..a2c7cfa72 --- /dev/null +++ b/generate_sdist.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +./gitinfo.sh + +./generate_docs_artifacts.sh +mkdocs build +mkdir -p nomad/app/static/docs +cp -r site/* nomad/app/static/docs/ + + +./generate_gui_artifacts.sh +cd gui +yarn +yarn build +cd .. +mkdir -p nomad/app/static/gui +cp -r gui/build/* nomad/app/static/gui +rm nomad/app/static/gui/env.js + +rm -rf nomad_lab.egg-info dist build +python setup.py sdist \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 0b7855dbf..70a691c73 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,6 @@ site_name: NOMAD Documentation site_description: | The documentation for NOMAD v1. site_author: The NOMAD Authors -site_dir: nomad/app/static/docs nav: - Introduction: index.md - web.md -- GitLab From f8cb85227f543b26c10db552f7dbb489ba999819 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Thu, 22 Sep 2022 10:23:31 +0200 Subject: [PATCH 18/19] main requirements --- requirements.txt | 237 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..51171f787 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,237 @@ +# +# This file is autogenerated by pip-compile with python 3.7 +# To update, run: +# +# pip-compile --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/matid/setup.py dependencies/nomad-dos-fingerprints/setup.py dependencies/parsers/atomistic/requirements.txt dependencies/parsers/database/requirements.txt dependencies/parsers/eelsdb/requirements.txt dependencies/parsers/electronic/requirements.txt dependencies/parsers/nexus/requirements.txt dependencies/parsers/workflow/requirements.txt pyproject.toml +# +aiofiles==0.8.0 # via nomad-lab (pyproject.toml) +alabaster==0.7.12 # via sphinx +alembic==1.8.1 # via jupyterhub +amqp==2.6.1 # via kombu +aniso8601==7.0.0 # via nomad-lab (pyproject.toml) +anyio==3.6.1 # via httpcore, watchfiles +arrow==1.2.3 # via isoduration +ase==3.19.0 # via -r dependencies/parsers/nexus/requirements.txt, asr, matid, matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml) +asr==0.4.1 # via -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +astroid==2.12.10 # via pylint +astunparse==1.6.3 # via mdtraj +async-generator==1.10 # via jupyterhub +async-timeout==4.0.2 # via redis +atomicwrites==1.4.1 # via pytest +attrs==22.1.0 # via jsonschema, pytest +babel==2.10.3 # via sphinx +bagit==1.8.1 # via nomad-lab (pyproject.toml) +basicauth==0.4.1 # via nomad-lab (pyproject.toml) +bcrypt==3.2.0 # via nomad-lab (pyproject.toml) +beautifulsoup4==4.11.1 # via bs4 +billiard==3.6.4.0 # via celery +biopython==1.79 # via mdanalysis +bitarray==2.3.5 # via nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nomad-lab (pyproject.toml) +bs4==0.0.1 # via nomad-lab (pyproject.toml) +cached-property==1.5.2 # via fqdn, h5py +cachetools==4.2.4 # via nomad-lab (pyproject.toml) +celery[redis]==4.4.7 # via nomad-lab (pyproject.toml) +certifi==2022.9.14 # via elasticsearch, httpcore, httpx, requests +certipy==0.1.3 # via jupyterhub +cffi==1.15.1 # via bcrypt, cryptography +cftime==1.6.2 # via netcdf4 +charset-normalizer==2.0.12 # via httpx, requests +chronic==0.3.4 # via matid +click==8.1.3 # via -r dependencies/parsers/nexus/requirements.txt, asr, flask, nomad-lab (pyproject.toml), uvicorn +commonmark==0.9.1 # via recommonmark +coverage==6.4.4 # via pytest-cov +cryptography==38.0.1 # via nomad-lab (pyproject.toml), pyjwt, pyopenssl +cycler==0.11.0 # via matplotlib +decorator==5.1.1 # via validators +defusedxml==0.7.1 # via odfpy +deprecated==1.2.13 # via redis +dnspython==2.2.1 # via email-validator +docker==6.0.0 # via dockerspawner +dockerspawner==12.1.0 # via nomad-lab (pyproject.toml) +docstring-parser==0.12 # via nomad-lab (pyproject.toml) +docutils==0.19 # via m2r, recommonmark, sphinx +ecdsa==0.18.0 # via python-jose +elasticsearch==7.17.1 # via elasticsearch-dsl, nomad-lab (pyproject.toml) +elasticsearch-dsl==7.4.0 # via nomad-lab (pyproject.toml) +email-validator==1.3.0 # via optimade +entrypoints==0.4 # via jupyterhub +escapism==1.0.1 # via dockerspawner +et-xmlfile==1.1.0 # via openpyxl +fastapi==0.65.3 # via nomad-lab (pyproject.toml), optimade +filelock==3.3.1 # via nomad-lab (pyproject.toml) +flask==2.2.2 # via asr +fonttools==4.37.3 # via matplotlib +fqdn==1.5.1 # via jsonschema +future==0.18.2 # via matid, uncertainties +gitdb==4.0.9 # via gitpython +gitpython==3.1.24 # via nomad-lab (pyproject.toml) +greenlet==1.1.3 # via sqlalchemy +griddataformats==0.7.0 # via mdanalysis +gsd==2.6.0 # via mdanalysis +h11==0.12.0 # via httpcore, uvicorn +h5grove==1.0.0 # via nomad-lab (pyproject.toml) +h5py==3.6.0 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, h5grove, nomad-lab (pyproject.toml), phonopy, pyscf +hjson==3.0.2 # via nomad-lab (pyproject.toml) +html5lib==1.1 # via nomad-lab (pyproject.toml) +httpcore==0.14.7 # via httpx +httptools==0.5.0 # via uvicorn +httpx==0.22.0 # via nomad-lab (pyproject.toml) +idna==3.4 # via anyio, email-validator, jsonschema, requests, rfc3986 +imagesize==1.4.1 # via sphinx +importlib-metadata==4.12.0 # via alembic, click, flask, jsonschema, kombu, mako, pint, pluggy, redis, sphinx, sqlalchemy, xarray +importlib-resources==5.9.0 # via alembic +inflection==0.5.1 # via nomad-lab (pyproject.toml) +isodate==0.6.1 # via rdflib +isoduration==20.11.0 # via jsonschema +isort==4.3.21 # via pylint +itsdangerous==2.0.1 # via flask, nomad-lab (pyproject.toml) +jinja2==3.0.3 # via flask, jupyterhub, nomad-lab (pyproject.toml), sphinx +jmespath==0.10.0 # via nomad-lab (pyproject.toml) +joblib==1.1.0 # via mdanalysis, nomad-lab (pyproject.toml), scikit-learn +jsonpointer==2.3 # via jsonschema +jsonschema[format]==4.1.2 # via jupyter-telemetry, nomad-lab (pyproject.toml) +jupyter-telemetry==0.1.0 # via jupyterhub +jupyterhub==1.4.2 # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator +kiwisolver==1.4.4 # via matplotlib +kombu==4.6.11 # via celery +lark-parser==0.12.0 # via optimade +lazy-object-proxy==1.7.1 # via astroid +lxml==4.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml), xrdtools +m2r==0.2.1 # via nomad-lab (pyproject.toml) +mako==1.2.2 # via alembic +markupsafe==2.1.1 # via jinja2, mako, werkzeug +matid==0.6.1 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +matplotlib==3.5.3 # via ase, asr, mdanalysis, phonopy, pymatgen +mccabe==0.6.1 # via pylint +mdanalysis==2.1.0 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +mdtraj==1.9.6 # via nomad-lab (pyproject.toml) +memoization==0.4.0 # via nomad-lab (pyproject.toml) +mistune==2.0.4 # via m2r +mmtf-python==1.1.3 # via mdanalysis +mongoengine==0.24.2 # via nomad-lab (pyproject.toml) +mongomock==4.1.2 # via optimade +monty==2022.9.9 # via pymatgen +more-itertools==8.14.0 # via pytest +mpmath==1.2.1 # via sympy +mrcfile==1.4.2 # via griddataformats +msgpack==1.0.4 # via mmtf-python, nomad-lab (pyproject.toml) +mypy==0.730 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +mypy-extensions==0.4.3 # via mypy +netcdf4==1.5.4 # via -r dependencies/parsers/electronic/requirements.txt, nomad-lab (pyproject.toml) +networkx==2.6.3 # via matid, matid (dependencies/matid/setup.py), mdanalysis, pymatgen +nptyping==1.4.4 # via nomad-lab (pyproject.toml) +numpy==1.21.2 # via -r dependencies/parsers/nexus/requirements.txt, ase, biopython, cftime, griddataformats, gsd, h5grove, h5py, matid, matid (dependencies/matid/setup.py), matplotlib, mdanalysis, mdtraj, mrcfile, netcdf4, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/setup.py), nptyping, pandas, phonopy, pymatgen, pyscf, scikit-learn, scipy, spglib, tifffile, xarray, xrdtools +oauthenticator==14.2.0 # via nomad-lab (pyproject.toml) +oauthlib==3.2.1 # via jupyterhub +odfpy==1.4.1 # via -r dependencies/parsers/nexus/requirements.txt +openpyxl==3.0.9 # via nomad-lab (pyproject.toml) +optimade[mongo]==0.18.0 # via nomad-lab (pyproject.toml) +orjson==3.6.0 # via h5grove, nomad-lab (pyproject.toml) +packaging==21.3 # via docker, matplotlib, mdanalysis, mongomock, pint, redis, sphinx +palettable==3.3.0 # via pymatgen +pamela==1.0.0 # via jupyterhub +pandas==1.3.5 # via -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, panedr, pymatgen, xarray +panedr==0.2 # via -r dependencies/parsers/atomistic/requirements.txt, nomad-lab (pyproject.toml) +parmed==3.0.0 # via nomad-lab (pyproject.toml) +passlib==1.7.4 # via nomad-lab (pyproject.toml) +phonopy==2.11.0 # via -r dependencies/parsers/workflow/requirements.txt, asr, nomad-lab (pyproject.toml) +pillow==9.2.0 # via matplotlib +pint==0.17 # via nomad-lab (pyproject.toml) +plotly==5.10.0 # via asr, pymatgen +pluggy==1.0.0 # via pytest +prometheus-client==0.14.1 # via jupyterhub +py==1.11.0 # via pytest +pyaml==21.10.1 # via -r dependencies/parsers/nexus/requirements.txt +pyasn1==0.4.8 # via python-jose, rsa +pycodestyle==2.8.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pycparser==2.21 # via cffi +pydantic==1.9.1 # via fastapi, nomad-lab (pyproject.toml), optimade +pygments==2.13.0 # via sphinx +pyjwt[crypto]==1.7.1 # via nomad-lab (pyproject.toml) +pylint==2.3.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, pylint-plugin-utils +pylint-plugin-utils==0.5 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pymatgen==2022.0.17 # via asr, nomad-lab (pyproject.toml) +pymongo==3.12.1 # via mongoengine, nomad-lab (pyproject.toml), optimade +pyopenssl==22.0.0 # via certipy +pyparsing==3.0.9 # via matplotlib, mdtraj, packaging, rdflib +pyrsistent==0.18.1 # via jsonschema +pyscf==2.0.1 ; sys_platform == "darwin" # via -r dependencies/parsers/electronic/requirements.txt +pytest==3.10.0 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, pytest-cov, pytest-timeout +pytest-cov==2.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +pytest-timeout==1.4.2 # via -r dependencies/parsers/atomistic/requirements.txt, -r dependencies/parsers/database/requirements.txt, -r dependencies/parsers/eelsdb/requirements.txt, -r dependencies/parsers/electronic/requirements.txt, -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt +python-dateutil==2.8.2 # via arrow, elasticsearch-dsl, jupyterhub, matplotlib, pandas +python-dotenv==0.21.0 # via uvicorn +python-jose==3.3.0 # via python-keycloak +python-json-logger==2.0.2 # via -r dependencies/parsers/nexus/requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml) +python-keycloak==0.26.1 # via nomad-lab (pyproject.toml) +python-logstash==0.4.6 # via nomad-lab (pyproject.toml) +python-magic==0.4.24 # via nomad-lab (pyproject.toml) +python-multipart==0.0.5 # via nomad-lab (pyproject.toml) +pytz==2021.1 # via babel, celery, nomad-lab (pyproject.toml), pandas +pyyaml==6.0 # via nomad-lab (pyproject.toml), phonopy, pyaml, uvicorn +rdflib==5.0.0 # via nomad-lab (pyproject.toml) +recommonmark==0.7.1 # via nomad-lab (pyproject.toml) +redis==4.3.4 # via celery +requests==2.27.1 # via docker, jupyterhub, nomad-lab (pyproject.toml), optimade, pymatgen, python-keycloak, sphinx +rfc3339-validator==0.1.4 # via jsonschema +rfc3986[idna2008]==1.5.0 # via httpx +rfc3987==1.3.8 # via jsonschema +rsa==4.9 # via python-jose +ruamel-yaml==0.17.21 # via jupyter-telemetry, pymatgen +ruamel-yaml-clib==0.2.6 # via ruamel-yaml +runstats==2.0.0 # via nomad-lab (pyproject.toml) +scikit-learn==0.24.2 # via matid (dependencies/matid/setup.py), nomad-lab (pyproject.toml), sklearn +scipy==1.7.1 # via -r dependencies/parsers/atomistic/requirements.txt, ase, griddataformats, matid, matid (dependencies/matid/setup.py), mdanalysis, mdtraj, nomad-lab (pyproject.toml), pymatgen, pyscf, scikit-learn +sentinels==1.0.0 # via mongomock +six==1.16.0 # via astunparse, basicauth, bcrypt, ecdsa, elasticsearch-dsl, griddataformats, html5lib, isodate, pytest, python-dateutil, python-multipart, rdflib, rfc3339-validator, structlog, validators +sklearn==0.0 # via matid +smmap==5.0.0 # via gitdb +sniffio==1.3.0 # via anyio, httpcore, httpx +snowballstemmer==2.2.0 # via sphinx +soupsieve==2.3.2.post1 # via beautifulsoup4 +spglib==2.0.1 # via asr, matid, matid (dependencies/matid/setup.py), phonopy, pymatgen +sphinx==5.1.1 # via recommonmark +sphinxcontrib-applehelp==1.0.2 # via sphinx +sphinxcontrib-devhelp==1.0.2 # via sphinx +sphinxcontrib-htmlhelp==2.0.0 # via sphinx +sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-qthelp==1.0.3 # via sphinx +sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sqlalchemy==1.4.41 # via alembic, jupyterhub +starlette==0.14.2 # via fastapi +structlog==20.1.0 # via nomad-lab (pyproject.toml) +sympy==1.10.1 # via pymatgen +tabulate==0.8.9 # via nomad-lab (pyproject.toml), pymatgen +tenacity==8.1.0 # via plotly +threadpoolctl==3.1.0 # via mdanalysis, scikit-learn +tifffile==2021.11.2 # via h5grove +tornado==6.2 # via jupyterhub +tqdm==4.64.1 # via mdanalysis +traitlets==5.4.0 # via jupyter-telemetry, jupyterhub +typed-ast==1.4.3 # via astroid, mypy +typing-extensions==4.3.0 # via anyio, arrow, astroid, async-timeout, gitpython, importlib-metadata, kiwisolver, mypy, optimade, pydantic, pymatgen, redis, uvicorn, xarray +typish==1.9.3 # via nptyping +uncertainties==3.1.7 # via pymatgen +unidecode==1.3.2 # via nomad-lab (pyproject.toml) +uri-template==1.2.0 # via jsonschema +urllib3==1.26.12 # via docker, elasticsearch, requests +uvicorn[standard]==0.18.3 # via nomad-lab (pyproject.toml) +uvloop==0.17.0 # via uvicorn +validators==0.18.2 # via nomad-lab (pyproject.toml) +vine==1.3.0 # via amqp, celery +watchfiles==0.17.0 # via uvicorn +webcolors==1.12 # via jsonschema +webencodings==0.5.1 # via html5lib +websocket-client==1.4.1 # via docker +websockets==10.3 # via uvicorn +werkzeug==2.2.2 # via flask +wheel==0.37.1 # via astunparse +wrapt==1.14.1 # via astroid, deprecated +xarray==0.20.2 # via -r dependencies/parsers/nexus/requirements.txt, -r dependencies/parsers/workflow/requirements.txt, nomad-lab (pyproject.toml) +xrdtools==0.1.1 # via nomad-lab (pyproject.toml) +zipfile37==0.1.3 # via nomad-lab (pyproject.toml) +zipp==3.8.1 # via importlib-metadata, importlib-resources +zipstream-new==1.1.5 # via nomad-lab (pyproject.toml) + +# The following packages are considered to be unsafe in a requirements file: +# setuptools -- GitLab From 30b5206d50d394dbf6c407e7087405b5f2234115 Mon Sep 17 00:00:00 2001 From: Adam Fekete Date: Thu, 22 Sep 2022 11:32:54 +0200 Subject: [PATCH 19/19] cleanup --- pyproject.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a06dd1cbe..3945c583c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,6 @@ requires = ["setuptools"] build-backend = "setuptools.build_meta" - [project] name = 'nomad-lab' version = '1.1.2' @@ -131,12 +130,9 @@ dev = [ 'mkdocs-macros-plugin==0.6.3', ] - [project.scripts] nomad = "nomad.cli:run_cli" -# Package discovery - [tool.setuptools.packages.find] where = [ ".", -- GitLab