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..e95b206 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: @@ -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 @@ -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/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/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..9bec610 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,45 @@ +name: Publish + +on: + release: + types: [published] + +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-release + path: dist + + publish: + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/project/paramdb + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v3 + with: + name: paramdb-release + path: dist + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore index b72ab1d..6194349 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,8 @@ __pycache__/ .mypy_cache/ .pytest_cache/ .coverage +coverage.xml -# Data files +# Database files *.db *.db-journal 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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 18e4a0b..74f13c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,21 @@ 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] +## [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 384dea5..2946409 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,7 +4,6 @@ authors: - family-names: "Hadley" given-names: "Alex" title: "ParamDB" -version: 0.7.0 -# doi: 10.5281/zenodo.xxxx -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 a5fcb34..e0539e1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,14 @@ # 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) +[![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) + -Python library for storing and retrieving experiment parameters. +Python package for storing and retrieving experiment parameters. @@ -13,28 +19,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 -``` - -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 +pip install -U paramdb[astropy] ``` -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 @@ -52,6 +46,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 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/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 35abda6..9e740d2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -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" @@ -2403,14 +2498,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 +2712,4 @@ astropy = ["astropy"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "6524ee3d891298052edd63b8e98b5514a48085209918ed22d9dfd8b50ec9c9ed" +content-hash = "f788390b55e294b895db530b519711adf4360b9a67a14a02765800cffb3b4e69" diff --git a/pyproject.toml b/pyproject.toml index 83bc834..cc46550 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." +version = "0.8.0" +description = "Python package for storing and retrieving experiment parameters." authors = ["Alex Hadley "] license = "BSD-3-Clause" readme = "README.md" @@ -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} @@ -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"