diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7ba8109..8a1f5ca 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,8 +3,8 @@ FROM mcr.microsoft.com/devcontainers/python:0-3.10 ENV PYTHONUNBUFFERED 1 # [Optional] If your requirements rarely change, uncomment this section to add them to the image. -COPY docs/requirements.txt /tmp/pip-tmp/ -RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ +COPY requirements-dev.txt /tmp/pip-tmp/ +RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements-dev.txt \ && rm -rf /tmp/pip-tmp RUN apt-get update && apt-get -y install pandoc diff --git a/.github/workflows/build-documentation.yml b/.github/workflows/build-documentation.yml index 055f647..869a6b0 100644 --- a/.github/workflows/build-documentation.yml +++ b/.github/workflows/build-documentation.yml @@ -24,13 +24,13 @@ jobs: pip install . pip install .[dev] if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - if [ -f docs/requirements.txt ]; then pip install -r docs/requirements.txt; fi + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - name: Install notebook requirements run: | sudo apt-get install pandoc - name: Build docs run: | - sphinx-build -T -E -b html -d docs/build/doctrees ./docs docs/build/html + sphinx-build -T -E -b html -d docs/build/doctrees ./docs docs/build/html -D exclude_patterns="notebooks/*" - name: Run ghp-import run: | ghp-import -n -p -f -x docs/ docs/build/html \ No newline at end of file diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index e13ed83..bf902ec 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -30,6 +30,7 @@ jobs: pip install . pip install .[dev] if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - name: Analyze code with linter run: | diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index e632649..1182210 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -28,6 +28,7 @@ jobs: pip install . pip install .[dev] if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - name: Run unit tests with pytest run: | python -m pytest tests diff --git a/.github/workflows/testing-and-coverage.yml b/.github/workflows/testing-and-coverage.yml index ec1a849..7f845dc 100644 --- a/.github/workflows/testing-and-coverage.yml +++ b/.github/workflows/testing-and-coverage.yml @@ -30,6 +30,7 @@ jobs: pip install . pip install .[dev] if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - name: Run unit tests with pytest run: | python -m pytest tests --cov=pzserver --cov-report=xml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e8f4453..a5c544c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ repos: # This hook should always pass. It will print a message if the local version # is out of date. - repo: https://github.com/lincc-frameworks/pre-commit-hooks - rev: v0.1 + rev: v0.1.2 hooks: - id: check-lincc-frameworks-template-version name: Check template version @@ -40,7 +40,7 @@ repos: # prevents committing directly branches named 'main' and 'master'. - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.6.0 hooks: - id: no-commit-to-branch name: Prevent main branch commits @@ -52,7 +52,7 @@ repos: # verify that pyproject.toml is well formed - repo: https://github.com/abravalheri/validate-pyproject - rev: v0.12.1 + rev: v0.16 hooks: - id: validate-pyproject name: Validate pyproject.toml @@ -60,7 +60,7 @@ repos: # Automatically sort the imports used in .py files - repo: https://github.com/pycqa/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort name: isort (python files in src/ and tests/) diff --git a/docs/notebooks/intro_notebook.ipynb b/docs/notebooks/intro_notebook.ipynb index 3541d4e..9c8f259 100644 --- a/docs/notebooks/intro_notebook.ipynb +++ b/docs/notebooks/intro_notebook.ipynb @@ -11,7 +11,7 @@ "\n", "Contact author: [Julia Gschwend](mailto:julia@linea.org.br)\n", "\n", - "Last verified run: 2024-Jan-23
" + "Last verified run: 2024-May-06
" ] }, { @@ -927,9 +927,9 @@ ], "metadata": { "kernelspec": { - "display_name": "pz-lib", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "pz-lib" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 4104a2b..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -sphinx>=7.0.0,<8 -sphinx_rtd_theme>1.2.0,<2 -sphinx-autoapi>=3.0.0,<4 -ghp-import -nbsphinx -ipython -jupytext -jupyter -matplotlib -numpy \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 2d186c5..695c0a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "pzserver" license = {file = "LICENSE"} -dynamic = ["version"] +dynamic = ["version", "dependencies", "optional-dependencies"] readme = "README.md" authors = [ { name = "LIneA", email = "itteam@linea.org.br" } @@ -20,40 +20,6 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] -dependencies = [ - "deprecated", - "numpy>=1.23", - "pandas>=1.2.0", - "requests>=2.23.0", - "astropy>=5.0.0", - "matplotlib>=3.6.0", - "tables_io>=0.7.9", - "Jinja2>=3.1.2", - "ipython>=8.5.0", - "h5py>=3.8.0", - "pyarrow>=15.0.2", -] - -# On a mac, install optional dependencies with `pip install '.[dev]'` (include the single quotes) -[project.optional-dependencies] -dev = [ - "pytest", - "pytest-cov", # Used to report total code coverage - "pre-commit", # Used to run checks before finalizing a git commit - "sphinx>=7.0.0,<8", # Used to automatically generate documentation - "sphinx_rtd_theme>=1.2.0,<2", # Used to render documentation - "sphinx-autoapi>=3.0.0,<4", # Used to automatically generate api documentation - "pylint", # Used for static linting of files - # if you add dependencies here while experimenting in a notebook and you - # want that notebook to render in your documentation, please add the - # dependencies to ./docs/requirements.txt as well. - "ipykernel", # Support for Jupyter notebooks - "nbconvert", # Needed for pre-commit check to clear output from Python notebooks - "nbsphinx", # Used to integrate Python notebooks into Sphinx documentation - "ipython", # Also used in building notebooks into Sphinx - "jupyterlab", - "matplotlib", # Used in sample notebook intro_notebook.ipynb -] [build-system] requires = [ @@ -64,3 +30,7 @@ build-backend = "setuptools.build_meta" [tool.setuptools_scm] write_to = "src/pzserver/_version.py" + +[tool.setuptools.dynamic] +dependencies = {file = ["requirements.txt"]} +optional-dependencies = {dev = { file = ["requirements-dev.txt"] }} diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..e6c841f --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,13 @@ +pytest +pytest-cov +pre-commit +sphinx>=7.0.0,<8 +sphinx_rtd_theme>=1.2.0,<2 +sphinx-autoapi>=3.0.0,<4 +pylint +ipykernel +nbconvert +nbsphinx +ipython +jupyterlab +matplotlib \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cac94cd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,11 @@ +deprecated +numpy>=1.23 +pandas>=1.2.0 +requests>=2.23.0 +astropy>=5.0.0 +matplotlib>=3.6.0 +tables_io>=0.7.9 +Jinja2>=3.1.2 +ipython>=8.5.0 +h5py>=3.8.0 +pyarrow>=15.0.2 \ No newline at end of file