From c20b262617111ffb891672d9d9df6ad7b55b2a20 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Thu, 1 Jun 2023 14:06:01 -0700 Subject: [PATCH 01/16] Add CI status badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a5fcb34..8ec2d79 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Python library for storing and retrieving experiment parameters. +[![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) + ## Installation From fc4d21ecf85c85b5d274e6230530ebdfdff0aa1b Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Thu, 1 Jun 2023 14:09:36 -0700 Subject: [PATCH 02/16] Move CI badge above intro description --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8ec2d79..5d9f4be 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # ParamDB +[![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) + Python library for storing and retrieving experiment parameters. -[![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) - ## Installation From f0480d5cade3cdf1d7a868eeee860b460fb8ac9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:02:04 +0000 Subject: [PATCH 03/16] Bump typing-extensions from 4.6.2 to 4.6.3 Bumps [typing-extensions](https://github.com/python/typing_extensions) from 4.6.2 to 4.6.3. - [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md) - [Commits](https://github.com/python/typing_extensions/compare/4.6.2...4.6.3) --- updated-dependencies: - dependency-name: typing-extensions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 10 +++++----- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 35abda6..e34d8a8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "alabaster" @@ -2403,14 +2403,14 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] [[package]] name = "typing-extensions" -version = "4.6.2" +version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.6.2-py3-none-any.whl", hash = "sha256:3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"}, - {file = "typing_extensions-4.6.2.tar.gz", hash = "sha256:06006244c70ac8ee83fa8282cb188f697b8db25bc8b4df07be1873c43897060c"}, + {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, + {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, ] [[package]] @@ -2617,4 +2617,4 @@ astropy = ["astropy"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "6524ee3d891298052edd63b8e98b5514a48085209918ed22d9dfd8b50ec9c9ed" +content-hash = "f1f0fb350f1e6f978a09e5a8dd4207c8d9b491f540ee30652ba45fd05272c134" diff --git a/pyproject.toml b/pyproject.toml index 83bc834..bb414cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ repository = "https://github.com/PainterQubits/paramdb" [tool.poetry.dependencies] python = "^3.10" -typing-extensions = "^4.6.2" +typing-extensions = "^4.6.3" sqlalchemy = "^2.0.15" zstandard = "^0.21.0" astropy = {version = "^5.3", optional = true} From 589a5cb15e3c6446f66698921f7d86cfeb4ee81b Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 11:56:24 -0700 Subject: [PATCH 04/16] Make some updates for open-source release --- .github/dependabot.yml | 4 +- .github/workflows/ci.yml | 2 +- .github/workflows/github-pages.yml | 76 ------------------------------ .gitignore | 3 +- CHANGELOG.md | 2 +- CITATION.cff | 1 - README.md | 18 ++----- 7 files changed, 8 insertions(+), 98 deletions(-) delete mode 100644 .github/workflows/github-pages.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index de64608..419f525 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,12 +1,12 @@ version: 2 updates: - - package-ecosystem: "pip" + - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" target-branch: "develop" - - package-ecosystem: "github-actions" + - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f38084e..e905080 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ on: env: PYTHON_VERSION: "3.10" - POETRY_VERSION: "1.5.0" + POETRY_VERSION: "1.5.1" jobs: ci: diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml deleted file mode 100644 index ec6a237..0000000 --- a/.github/workflows/github-pages.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: Deploy to GitHub Pages - -on: workflow_dispatch - -env: - PYTHON_VERSION: "3.10" - POETRY_VERSION: "1.5.0" - PARAMDB_VERSION: "0.7.0" - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install Poetry - run: pipx install poetry==$POETRY_VERSION - - - name: Set up Python with Poetry cache - uses: actions/setup-python@v4 - with: - python-version: ${{ env.PYTHON_VERSION }} - cache: poetry - - - name: Install dependencies - run: poetry install - - - name: Build documentation website to _site - run: poetry run sphinx-build docs _site - - - name: Build package - run: poetry build - - - name: Create _site/releases/index.html - run: | - mkdir _site/releases - echo ' - - - paramdb - - ' > _site/releases/index.html - - - name: Create _site/releases/paramdb/index.html - run: | - mkdir _site/releases/paramdb - echo ' - - - - paramdb-${{ env.PARAMDB_VERSION }}-py3-none-any.whl - - paramdb-${{ env.PARAMDB_VERSION }}.tar.gz - - ' > _site/releases/paramdb/index.html - - - name: Move package files into _site/releases/paramdb - run: mv dist/* _site/releases/paramdb - - - name: Upload site artifact - uses: actions/upload-pages-artifact@v1 - - deploy: - needs: build - permissions: - pages: write - id-token: write - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index b72ab1d..872d753 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,7 @@ jupyter_execute/ __pycache__/ .mypy_cache/ .pytest_cache/ -.coverage -# Data files +# Database files *.db *.db-journal diff --git a/CHANGELOG.md b/CHANGELOG.md index 18e4a0b..3562e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] diff --git a/CITATION.cff b/CITATION.cff index 384dea5..514f2ca 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -5,6 +5,5 @@ authors: given-names: "Alex" title: "ParamDB" version: 0.7.0 -# doi: 10.5281/zenodo.xxxx date-released: 2023-05-19 url: "https://github.com/PainterQubits/paramdb" diff --git a/README.md b/README.md index 5d9f4be..a8bf352 100644 --- a/README.md +++ b/README.md @@ -15,28 +15,16 @@ Python library for storing and retrieving experiment parameters. Install the latest version of ParamDB using pip: ``` -pip install -U paramdb --extra-index-url https://painterqubits.github.io/paramdb/releases +pip install -U paramdb ``` -To install along with [Astropy] for support for storing [`astropy.units.Quantity`] +To install along with [Astropy] for support for storing scalar [`astropy.units.Quantity`] objects in the database, ParamDB can be installed with the `astropy` extra: ``` -pip install -U paramdb[astropy] --extra-index-url https://painterqubits.github.io/paramdb/releases +pip install -U paramdb[astropy] ``` -The `extra-index-url` parameter is needed since ParamDB is not published to PyPI yet. If -you are using a Python package manager, add -`https://painterqubits.github.io/paramdb/releases` as a secondary source. For example, for -[Poetry] the command is - -``` -poetry source add --secondary paramdb https://painterqubits.github.io/paramdb/releases -``` - -Then the package can be installed like any other (e.g. `poetry add paramdb`). - -[poetry]: https://python-poetry.org [astropy]: https://docs.astropy.org/en/stable/index.html [`astropy.units.quantity`]: https://docs.astropy.org/en/stable/api/astropy.units.Quantity.html#astropy.units.Quantity From 0b6f9f85251a84c6fa1bb50d2de5beee3d1dfb81 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 12:00:12 -0700 Subject: [PATCH 05/16] Update description in README.md and pyproject.toml for consistency --- README.md | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a8bf352..74a30dc 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ -Python library for storing and retrieving experiment parameters. +Python package for storing and retrieving experiment parameters. diff --git a/pyproject.toml b/pyproject.toml index bb414cd..4d64bd8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "paramdb" version = "0.7.0" -description = "Python library for storing and retrieving experiment parameters." +description = "Python package for storing and retrieving experiment parameters." authors = ["Alex Hadley "] license = "BSD-3-Clause" readme = "README.md" From d5c7ebf33e72383f83abbe99ac6aff01f09d7967 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 12:22:37 -0700 Subject: [PATCH 06/16] Add .readthedocs.yaml --- .github/workflows/ci.yml | 2 +- .readthedocs.yaml | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .readthedocs.yaml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e905080..690f341 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: cache: poetry - name: Install dependencies - run: poetry install --all-extras + run: poetry install --all-extras --without docs - name: Check Formatting (Black) run: poetry run black paramdb tests --check diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..36b9e3c --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,15 @@ +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.10" + jobs: + post_create_environment: + - pip install poetry==1.5.1 + - poetry config virtualenvs.create false + post_install: + - poetry install --without dev + +sphinx: + configuration: docs/conf.py From f66e515fa086f1ce85fdf8704a0971699567c8af Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 12:55:30 -0700 Subject: [PATCH 07/16] Add docs badge to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74a30dc..da22b61 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # ParamDB [![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) +[![Documentation Status](https://readthedocs.org/projects/paramdb/badge/?version=stable)](https://paramdb.readthedocs.io/en/stable/?badge=stable) From 06fd46b7d43668171fea70a6183216f801e2e4d8 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 13:37:32 -0700 Subject: [PATCH 08/16] Create initial publish workflow --- .github/workflows/publish.yml | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..8fecc4b --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,44 @@ +name: Publish + +on: + release: + types: [published] + workflow_dispatch: + +env: + PYTHON_VERSION: "3.10" + POETRY_VERSION: "1.5.1" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install Poetry + run: pipx install poetry==${{ env.POETRY_VERSION }} + + - name: Build package + run: poetry build + + - name: Upload package artifact + uses: actions/upload-artifact@v3 + with: + name: paramdb-dist + path: dist + + publish: + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/paramdb + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v3 + with: + name: paramdb-dist + + - name: Display structure of downloaded files + run: ls -R From 6bff345696a1e3f4b60f14b9e9f78c78bf3d8e5e Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 13:38:36 -0700 Subject: [PATCH 09/16] Add temporary push to develop trigger to publish workflow --- .github/workflows/publish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8fecc4b..77e4622 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,9 @@ name: Publish on: + push: + branches: + - develop release: types: [published] workflow_dispatch: From 7e5fd77757719ae7a52c02cbf99a73cc96780534 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 13:44:39 -0700 Subject: [PATCH 10/16] Adjust download artifact action --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/publish.yml | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 690f341..b96fcbe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,11 +4,11 @@ on: push: branches: - main - - develop + # - develop pull_request: branches: - main - - develop + # - develop env: PYTHON_VERSION: "3.10" @@ -19,13 +19,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v3.5.3 - name: Install Poetry run: pipx install poetry==${{ env.POETRY_VERSION }} - name: Set up Python with Poetry cache - uses: actions/setup-python@v4 + uses: actions/setup-python@v4.6.1 with: python-version: ${{ env.PYTHON_VERSION }} cache: poetry diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 77e4622..f671dfc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v3.5.3 - name: Install Poetry run: pipx install poetry==${{ env.POETRY_VERSION }} @@ -26,7 +26,7 @@ jobs: run: poetry build - name: Upload package artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v3.1.2 with: name: paramdb-dist path: dist @@ -39,9 +39,10 @@ jobs: permissions: id-token: write steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v3.0.2 with: name: paramdb-dist + path: dist - name: Display structure of downloaded files run: ls -R From 0a163582516f01b2fd86772cdb4865fcf8031b39 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 13:46:11 -0700 Subject: [PATCH 11/16] Fix dependency in publish workflow --- .github/workflows/publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f671dfc..212a61a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,6 +32,7 @@ jobs: path: dist publish: + needs: build runs-on: ubuntu-latest environment: name: pypi From 8c2661f94612bf01f71163bfc5c2311b3bca10bf Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 13:50:44 -0700 Subject: [PATCH 12/16] Add publish to PyPI action --- .github/workflows/publish.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 212a61a..938a1a4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,7 +6,6 @@ on: - develop release: types: [published] - workflow_dispatch: env: PYTHON_VERSION: "3.10" @@ -28,7 +27,7 @@ jobs: - name: Upload package artifact uses: actions/upload-artifact@v3.1.2 with: - name: paramdb-dist + name: paramdb-release path: dist publish: @@ -36,14 +35,14 @@ jobs: runs-on: ubuntu-latest environment: name: pypi - url: https://pypi.org/p/paramdb + url: https://pypi.org/project/paramdb permissions: id-token: write steps: - uses: actions/download-artifact@v3.0.2 with: - name: paramdb-dist + name: paramdb-release path: dist - - name: Display structure of downloaded files - run: ls -R + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@v1.8.6 From b9a23123a23ca6d5353a2079175635c4bfa10afd Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 15:03:26 -0700 Subject: [PATCH 13/16] Finish publish workflow --- .github/workflows/ci.yml | 4 ++-- .github/workflows/publish.yml | 3 --- README.md | 6 +++--- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b96fcbe..4117dcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,11 +4,11 @@ on: push: branches: - main - # - develop + - develop pull_request: branches: - main - # - develop + - develop env: PYTHON_VERSION: "3.10" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 938a1a4..3cb1a84 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,9 +1,6 @@ name: Publish on: - push: - branches: - - develop release: types: [published] diff --git a/README.md b/README.md index da22b61..1dd1578 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,6 @@ ParamDB has two main components: See the [api reference] for more information. -[**parameter data**]: https://painterqubits.github.io/paramdb/parameter-data.html -[**database**]: https://painterqubits.github.io/paramdb/database.html -[api reference]: https://painterqubits.github.io/paramdb/api-reference +[**parameter data**]: https://paramdb.readthedocs.io/en/stable/parameter-data.html +[**database**]: https://paramdb.readthedocs.io/en/stable/database.html +[api reference]: https://paramdb.readthedocs.io/en/stable/api-reference.html From 23f1f40f2be3a1c0e3cf6894ed5ad85c2d6d1dd8 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 15:15:06 -0700 Subject: [PATCH 14/16] Add PyPI and License badges --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1dd1578..c672889 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # ParamDB +[![PyPI Latest Release](https://img.shields.io/pypi/v/paramdb)](https://pypi.org/project/paramdb/) +[![License](https://img.shields.io/pypi/l/paramdb)](https://github.com/PainterQubits/paramdb/blob/main/LICENSE) [![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) [![Documentation Status](https://readthedocs.org/projects/paramdb/badge/?version=stable)](https://paramdb.readthedocs.io/en/stable/?badge=stable) From 73850670848595f95e9590938a31c723102d9d3c Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 16:42:32 -0700 Subject: [PATCH 15/16] Add Codecov --- .github/workflows/ci.yml | 9 ++- .github/workflows/publish.yml | 8 +-- .gitignore | 2 + paramdb/_database.py | 4 +- paramdb/_param_data/_collections.py | 8 +-- paramdb/_param_data/_dataclasses.py | 2 +- poetry.lock | 99 ++++++++++++++++++++++++++++- pyproject.toml | 1 + 8 files changed, 117 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4117dcd..e95b206 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,13 +19,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v3 - name: Install Poetry run: pipx install poetry==${{ env.POETRY_VERSION }} - name: Set up Python with Poetry cache - uses: actions/setup-python@v4.6.1 + uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_VERSION }} cache: poetry @@ -54,4 +54,7 @@ jobs: run: poetry run mypy paramdb tests - name: Test (Pytest) - run: poetry run pytest + run: poetry run pytest --cov=paramdb --cov-report=xml + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3cb1a84..9bec610 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v3 - name: Install Poetry run: pipx install poetry==${{ env.POETRY_VERSION }} @@ -22,7 +22,7 @@ jobs: run: poetry build - name: Upload package artifact - uses: actions/upload-artifact@v3.1.2 + uses: actions/upload-artifact@v3 with: name: paramdb-release path: dist @@ -36,10 +36,10 @@ jobs: permissions: id-token: write steps: - - uses: actions/download-artifact@v3.0.2 + - uses: actions/download-artifact@v3 with: name: paramdb-release path: dist - name: Publish to PyPI - uses: pypa/gh-action-pypi-publish@v1.8.6 + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore index 872d753..6194349 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ jupyter_execute/ __pycache__/ .mypy_cache/ .pytest_cache/ +.coverage +coverage.xml # Database files *.db diff --git a/paramdb/_database.py b/paramdb/_database.py index 1e6ce87..a77e317 100644 --- a/paramdb/_database.py +++ b/paramdb/_database.py @@ -165,13 +165,13 @@ def commit(self, message: str, data: T) -> int: @overload def load( self, commit_id: int | None = None, *, load_classes: Literal[True] = True - ) -> T: + ) -> T: # pragma: no cover ... @overload def load( self, commit_id: int | None = None, *, load_classes: Literal[False] - ) -> dict[str, Any]: + ) -> dict[str, Any]: # pragma: no cover ... def load(self, commit_id: int | None = None, *, load_classes: bool = True) -> Any: diff --git a/paramdb/_param_data/_collections.py b/paramdb/_param_data/_collections.py index 4b26492..2054ff6 100644 --- a/paramdb/_param_data/_collections.py +++ b/paramdb/_param_data/_collections.py @@ -61,22 +61,22 @@ def __init__(self, iterable: Iterable[T] | None = None) -> None: self._add_child(item) @overload - def __getitem__(self, index: SupportsIndex) -> T: + def __getitem__(self, index: SupportsIndex) -> T: # pragma: no cover ... @overload - def __getitem__(self, index: slice) -> list[T]: + def __getitem__(self, index: slice) -> list[T]: # pragma: no cover ... def __getitem__(self, index: Any) -> Any: return self._contents[index] @overload - def __setitem__(self, index: SupportsIndex, value: T) -> None: + def __setitem__(self, index: SupportsIndex, value: T) -> None: # pragma: no cover ... @overload - def __setitem__(self, index: slice, value: Iterable[T]) -> None: + def __setitem__(self, index: slice, value: Iterable[T]) -> None: # pragma: no cover ... def __setitem__(self, index: SupportsIndex | slice, value: Any) -> None: diff --git a/paramdb/_param_data/_dataclasses.py b/paramdb/_param_data/_dataclasses.py index 72df930..9ce036b 100644 --- a/paramdb/_param_data/_dataclasses.py +++ b/paramdb/_param_data/_dataclasses.py @@ -29,7 +29,7 @@ def __setitem__(self, name: str, value: Any) -> None: @property @abstractmethod - def last_updated(self) -> datetime | None: + def last_updated(self) -> datetime | None: # pragma: no cover ... def to_dict(self) -> dict[str, Any]: diff --git a/poetry.lock b/poetry.lock index e34d8a8..9e740d2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -458,6 +458,82 @@ lint = ["black (>=22.6.0)", "mdformat (>0.7)", "mdformat-gfm (>=0.3.5)", "ruff ( test = ["pytest"] typing = ["mypy (>=0.990)"] +[[package]] +name = "coverage" +version = "7.2.7" +description = "Code coverage measurement for Python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + [[package]] name = "debugpy" version = "1.6.7" @@ -1799,6 +1875,25 @@ tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +[[package]] +name = "pytest-cov" +version = "4.1.0" +description = "Pytest plugin for measuring coverage." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] + [[package]] name = "python-dateutil" version = "2.8.2" @@ -2617,4 +2712,4 @@ astropy = ["astropy"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "f1f0fb350f1e6f978a09e5a8dd4207c8d9b491f540ee30652ba45fd05272c134" +content-hash = "f788390b55e294b895db530b519711adf4360b9a67a14a02765800cffb3b4e69" diff --git a/pyproject.toml b/pyproject.toml index 4d64bd8..c1d2101 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ astropy = ["astropy"] [tool.poetry.group.dev.dependencies] pytest = "^7.3.1" +pytest-cov = "^4.1.0" flake8 = "^6.0.0" pylint = "^2.17.4" mypy = "^1.3.0" From 4140a4eb40a31618c3978bc976e2bdef30214949 Mon Sep 17 00:00:00 2001 From: Alex Hadley Date: Fri, 9 Jun 2023 17:05:32 -0700 Subject: [PATCH 16/16] Bump version from 0.7.0 to 0.8.0 --- CHANGELOG.md | 13 ++++++++++++- CITATION.cff | 4 ++-- README.md | 1 + docs/conf.py | 2 +- pyproject.toml | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3562e6f..74f13c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.8.0] (June 9 2023) + +### Changed + +- Documentation website moved to Read the Docs. + +### Added + +- Badges for latest PyPI version, license, CI status, Codecov, and docs website build. + ## [0.7.0] (May 19 2023) ### Changed @@ -89,7 +99,8 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Database class `ParamDB` to store parameters in a SQLite file - Ability to retrieve the commit history as `CommitEntry` objects -[unreleased]: https://github.com/PainterQubits/paramdb/compare/v0.7.0...main +[unreleased]: https://github.com/PainterQubits/paramdb/compare/v0.8.0...develop +[0.8.0]: https://github.com/PainterQubits/paramdb/releases/tag/v0.8.0 [0.7.0]: https://github.com/PainterQubits/paramdb/releases/tag/v0.7.0 [0.6.0]: https://github.com/PainterQubits/paramdb/releases/tag/v0.6.0 [0.5.0]: https://github.com/PainterQubits/paramdb/releases/tag/v0.5.0 diff --git a/CITATION.cff b/CITATION.cff index 514f2ca..2946409 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,6 +4,6 @@ authors: - family-names: "Hadley" given-names: "Alex" title: "ParamDB" -version: 0.7.0 -date-released: 2023-05-19 +version: 0.8.0 +date-released: 2023-06-09 url: "https://github.com/PainterQubits/paramdb" diff --git a/README.md b/README.md index c672889..e0539e1 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![PyPI Latest Release](https://img.shields.io/pypi/v/paramdb)](https://pypi.org/project/paramdb/) [![License](https://img.shields.io/pypi/l/paramdb)](https://github.com/PainterQubits/paramdb/blob/main/LICENSE) [![CI](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml/badge.svg)](https://github.com/PainterQubits/paramdb/actions/workflows/ci.yml) +[![Codecov](https://codecov.io/github/PainterQubits/paramdb/branch/main/graph/badge.svg?token=PQEJWLBTBK)](https://codecov.io/github/PainterQubits/paramdb) [![Documentation Status](https://readthedocs.org/projects/paramdb/badge/?version=stable)](https://paramdb.readthedocs.io/en/stable/?badge=stable) diff --git a/docs/conf.py b/docs/conf.py index 1af7155..f648d6e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -4,7 +4,7 @@ project = "ParamDB" copyright = "2023, California Institute of Technology" author = "Alex Hadley" -release = "0.7.0" +release = "0.8.0" # General configuration extensions = [ diff --git a/pyproject.toml b/pyproject.toml index c1d2101..cc46550 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "paramdb" -version = "0.7.0" +version = "0.8.0" description = "Python package for storing and retrieving experiment parameters." authors = ["Alex Hadley "] license = "BSD-3-Clause"