From 4714e8fe5982dc245fb69cf403c7435413bd44ce Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 09:51:02 -0700 Subject: [PATCH 01/10] ci(ci_yaml): splitting ci.yaml into ci.yaml and cd.yaml to speed up build --- .github/workflows/CD.yaml | 227 ++++++++++++++++++++++++++++++++++++++ .github/workflows/CI.yaml | 164 +-------------------------- 2 files changed, 228 insertions(+), 163 deletions(-) create mode 100644 .github/workflows/CD.yaml diff --git a/.github/workflows/CD.yaml b/.github/workflows/CD.yaml new file mode 100644 index 0000000..6105a2d --- /dev/null +++ b/.github/workflows/CD.yaml @@ -0,0 +1,227 @@ +# This file is autogenerated by maturin v1.7.0 +# To update, run +# +# maturin generate-ci github +# +name: CD + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + unit_test: + name: Unit tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + - run: cargo test --all-features + rust_integration_test: + name: Rust Integration test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: cd tests/rust-test && ./test.sh + python_integration_test: + name: Python Integration test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: getsentry/action-setup-venv@v2.1.0 + id: venv + with: + python-version: 3.10.7 + - run: cd tests/python-sync && ./test.sh + linux: + runs-on: ${{ matrix.platform.runner }} + defaults: + run: + working-directory: ./szurubooru-client + strategy: + matrix: + platform: + - runner: ubuntu-latest + target: x86_64 + - runner: ubuntu-latest + target: x86 + - runner: ubuntu-latest + target: aarch64 + - runner: ubuntu-latest + target: armv7 + - runner: ubuntu-latest + target: ppc64le + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml + sccache: 'true' + manylinux: auto + before-script-linux: | + # If we're running on rhel centos, install needed packages. + if command -v yum &> /dev/null; then + yum update -y && yum install -y perl-core openssl openssl-devel pkgconfig libatomic + + # If we're running on i686 we need to symlink libatomic + # in order to build openssl with -latomic flag. + if [[ ! -d "/usr/lib64" ]]; then + ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so + fi + else + # If we're running on debian-based system. + apt update -y && apt-get install -y libssl-dev openssl pkg-config + fi + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-linux-${{ matrix.platform.target }} + path: dist + + musllinux: + runs-on: ${{ matrix.platform.runner }} + defaults: + run: + working-directory: ./szurubooru-client + strategy: + matrix: + platform: + - runner: ubuntu-latest + target: x86_64 + - runner: ubuntu-latest + target: x86 + - runner: ubuntu-latest + target: aarch64 + - runner: ubuntu-latest + target: armv7 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml + sccache: 'true' + manylinux: musllinux_1_2 + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-musllinux-${{ matrix.platform.target }} + path: dist + + windows: + runs-on: ${{ matrix.platform.runner }} + defaults: + run: + working-directory: ./szurubooru-client + strategy: + matrix: + platform: + - runner: windows-latest + target: x64 + - runner: windows-latest + target: x86 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + architecture: ${{ matrix.platform.target }} + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml + sccache: 'true' + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-windows-${{ matrix.platform.target }} + path: dist + + macos: + runs-on: ${{ matrix.platform.runner }} + defaults: + run: + working-directory: ./szurubooru-client + strategy: + matrix: + platform: + - runner: macos-12 + target: x86_64 + - runner: macos-14 + target: aarch64 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml + sccache: 'true' + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-macos-${{ matrix.platform.target }} + path: dist + + sdist: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./szurubooru-client + steps: + - uses: actions/checkout@v4 + - name: Build sdist + uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --out dist -m szurubooru-client/Cargo.toml + - name: Upload sdist + uses: actions/upload-artifact@v4 + with: + name: wheels-sdist + path: dist + + python_release: + name: Python Release + runs-on: ubuntu-latest + if: ${{ github.event_name == 'workflow_dispatch' }} + needs: [linux, musllinux, windows, macos, sdist] + steps: + - uses: actions/download-artifact@v4 + - name: Publish to PyPI + uses: PyO3/maturin-action@v1 + env: + MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + with: + command: upload + args: --non-interactive --skip-existing wheels-*/* + crate_release: + name: Crates.io Release + runs-on: ubuntu-latest + if: ${{ github.event_name == 'workflow_dispatch' }} + needs: [linux, musllinux, windows, macos, sdist] + steps: + - uses: actions/checkout@v4 + - name: Cargo publish + run: cargo publish -p szurubooru-client --token ${CRATES_TOKEN} + env: + CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 01ca7c1..aee5a93 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -6,14 +6,7 @@ name: CI on: - #push: - # branches: - # - main - # - master - # tags: - # - '*' pull_request: - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -47,23 +40,10 @@ jobs: python-version: 3.10.7 - run: cd tests/python-sync && ./test.sh linux: - runs-on: ${{ matrix.platform.runner }} + runs-on: ubuntu-latest defaults: run: working-directory: ./szurubooru-client - strategy: - matrix: - platform: - - runner: ubuntu-latest - target: x86_64 - - runner: ubuntu-latest - target: x86 - - runner: ubuntu-latest - target: aarch64 - - runner: ubuntu-latest - target: armv7 - - runner: ubuntu-latest - target: ppc64le steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -90,145 +70,3 @@ jobs: # If we're running on debian-based system. apt update -y && apt-get install -y libssl-dev openssl pkg-config fi - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-linux-${{ matrix.platform.target }} - path: dist - - musllinux: - runs-on: ${{ matrix.platform.runner }} - defaults: - run: - working-directory: ./szurubooru-client - strategy: - matrix: - platform: - - runner: ubuntu-latest - target: x86_64 - - runner: ubuntu-latest - target: x86 - - runner: ubuntu-latest - target: aarch64 - - runner: ubuntu-latest - target: armv7 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml - sccache: 'true' - manylinux: musllinux_1_2 - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-musllinux-${{ matrix.platform.target }} - path: dist - - windows: - runs-on: ${{ matrix.platform.runner }} - defaults: - run: - working-directory: ./szurubooru-client - strategy: - matrix: - platform: - - runner: windows-latest - target: x64 - - runner: windows-latest - target: x86 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - architecture: ${{ matrix.platform.target }} - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-windows-${{ matrix.platform.target }} - path: dist - - macos: - runs-on: ${{ matrix.platform.runner }} - defaults: - run: - working-directory: ./szurubooru-client - strategy: - matrix: - platform: - - runner: macos-12 - target: x86_64 - - runner: macos-14 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: -F python --release --out dist --find-interpreter -m szurubooru-client/Cargo.toml - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-macos-${{ matrix.platform.target }} - path: dist - - sdist: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./szurubooru-client - steps: - - uses: actions/checkout@v4 - - name: Build sdist - uses: PyO3/maturin-action@v1 - with: - command: sdist - args: --out dist -m szurubooru-client/Cargo.toml - - name: Upload sdist - uses: actions/upload-artifact@v4 - with: - name: wheels-sdist - path: dist - - python_release: - name: Python Release - runs-on: ubuntu-latest - if: ${{ github.event_name == 'workflow_dispatch' }} - needs: [linux, musllinux, windows, macos, sdist] - steps: - - uses: actions/download-artifact@v4 - - name: Publish to PyPI - uses: PyO3/maturin-action@v1 - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* - crate_release: - name: Crates.io Release - runs-on: ubuntu-latest - if: ${{ github.event_name == 'workflow_dispatch' }} - needs: [linux, musllinux, windows, macos, sdist] - steps: - - uses: actions/checkout@v4 - - name: Cargo publish - run: cargo publish -p szurubooru-client --token ${CRATES_TOKEN} - env: - CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} From 4485e6b05eea60dec27a337624fb7d0dff75b32f Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 09:54:27 -0700 Subject: [PATCH 02/10] fix(tokens): fixing typesafe named tokens --- szurubooru-client/src/models.rs | 14 ++++++++++---- szurubooru-client/src/tokens.rs | 11 +++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/szurubooru-client/src/models.rs b/szurubooru-client/src/models.rs index a89013e..0a295e9 100644 --- a/szurubooru-client/src/models.rs +++ b/szurubooru-client/src/models.rs @@ -326,6 +326,7 @@ impl TagSibling { all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// The type of post pub enum PostType { @@ -352,6 +353,7 @@ pub enum PostType { all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// How SFW/NSFW the post is pub enum PostSafety { @@ -648,11 +650,12 @@ impl NoteResource { } } -#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, AsRefStr, Eq, PartialEq)] #[cfg_attr( all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// The Rank of a given User pub enum UserRank { @@ -668,11 +671,12 @@ pub enum UserRank { Administrator, } -#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, AsRefStr, Eq, PartialEq)] #[cfg_attr( all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// The kind of User Avatar pub enum UserAvatarStyle { @@ -1358,11 +1362,12 @@ pub struct CreateUpdateComment { pub post_id: Option, } -#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, AsRefStr, Eq, PartialEq)] #[cfg_attr( all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// The kind of snapshot that has been recorded pub enum SnapshotOperationType { @@ -1376,11 +1381,12 @@ pub enum SnapshotOperationType { Merged, } -#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, AsRefStr, Eq, PartialEq)] #[cfg_attr( all(feature = "python"), pyclass(eq, eq_int, module = "szurubooru_client.models") )] +#[strum(serialize_all = "camelCase")] #[serde(rename_all = "camelCase")] /// The kind of resource described by this snapshot pub enum SnapshotResourceType { diff --git a/szurubooru-client/src/tokens.rs b/szurubooru-client/src/tokens.rs index 35c6b23..ebcab6f 100644 --- a/szurubooru-client/src/tokens.rs +++ b/szurubooru-client/src/tokens.rs @@ -2,6 +2,7 @@ //! warned that the types here help with the Type safety for the Tag names only. It does //! not guarantee that a given API endpoint will support the given tag. +use crate::models::{PostSafety, PostType, SnapshotOperationType, SnapshotResourceType, UserRank}; #[cfg(feature = "python")] use pyo3::{exceptions::PyValueError, prelude::*}; use std::fmt::Display; @@ -269,6 +270,16 @@ impl QueryToken { pub fn token_py(key: &Bound<'_, PyAny>, value: &Bound<'_, PyAny>) -> PyResult { let value = if let Ok(value) = value.extract::() { value.to_string() + } else if let Ok(tv) = value.extract::() { + tv.as_ref().to_string() + } else if let Ok(tv) = value.extract::() { + tv.as_ref().to_string() + } else if let Ok(tv) = value.extract::() { + tv.as_ref().to_string() + } else if let Ok(tv) = value.extract::() { + tv.as_ref().to_string() + } else if let Ok(tv) = value.extract::() { + tv.as_ref().to_string() } else { value.extract::()? }; From 533332d689f61bc1b416fa9b24275d3397ac12ca Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:01:40 -0700 Subject: [PATCH 03/10] test(test_py): adding named token typesafe test --- tests/python-sync/test.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/python-sync/test.py b/tests/python-sync/test.py index 3f7f39b..21dad68 100644 --- a/tests/python-sync/test.py +++ b/tests/python-sync/test.py @@ -157,6 +157,10 @@ def test_creating_posts(client): cat_posts = client.list_posts(query=[named_token(PostNamedToken.Tag, "maine_coon")]) assert len(cat_posts.results) == 4 + logger.info("Querying using typesafe types") + cat_posts = client.list_posts(query=[named_token(PostNamedToken.Safety, PostSafety.Safe)]) + assert len(cat_posts.results) == 4 + logger.info("Testing pagination") cat_posts = client.list_posts(limit=1) assert cat_posts.total == 4 From 6c2e515b5bc193e61f9d719d8b05a453835c9842 Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:02:14 -0700 Subject: [PATCH 04/10] docs(readme): updating readme with Python examples --- README.md | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 113 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1683135..8c67023 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ # szurubooru-client SzurubooruClient is a wrapper around the excellently-documented Szurubooru API, -including type-safe (if not API-safe) Query and Sort tokens. +including type-safe (if not API-safe) Query and Sort tokens. Includes a Python wrapper. -## Creating a new client +## From Rust -### Basic authentication +### Creating a new client + +#### Basic authentication Please keep in mind that this is not the preferred method of authentication. Tokens are far superior. @@ -15,7 +17,7 @@ let client = SzurubooruClient::new_with_basic_auth("http://localhost:5001", "myu "mypassword", true).unwrap(); ``` -### Token authentication +#### Token authentication The far superior and more secure means of authentication ```rust @@ -23,4 +25,110 @@ use szurubooru_client::SzurubooruClient; let client = SzurubooruClient::new_with_token("http://localhost:5001", "myuser", "sz-123456", true).unwrap(); ``` -For all other methods for making the requests, see the documentation. +For all other methods for making the requests, see the [documentation](https://docs.rs/szurubooru-client/latest). + +## From Python + +Install the client using `pip install szurubooru-client` + +```python +from szurubooru_client import * +from szurubooru_client.tokens import * +from szurubooru_client.models import * +``` + +### Creating a client + + +```python +client = SzurubooruSyncClient("http://localhost:9802", username="integration_user", + password="integration_password", allow_insecure=True) +``` + +### Creating a new tag + + +```python +foo_tag = client.create_tag("foo", category="default", description="The foo tag") +assert foo_tag.names == ["foo"] +``` + +### Returning only a subset of fields + + +```python +# Omit the "description" field +tags = client.list_tags(fields=["version", "names", "category"]) +assert tags.results[0].description is None +``` + +### Uploading from a file path + + +```python +folly1 = client.create_post(file_path="../folly1.jpg", + tags=["maine_coon", "cat", "folly1"], + safety=PostSafety.Safe) +``` + +### Searching for an existing post using an image + + +```python +folly1_search = client.post_for_image("../folly1.jpg") +assert folly1_search is not None +``` + +### Querying by an anonymous tag + + +```python +cat_posts = client.list_posts(query=[anonymous_token("cat")]) +``` + +### Querying by a named tag + + +```python +mc_posts = client.list_posts(query=[named_token(PostNamedToken.Tag, "maine_coon")]) +``` + +### Pagination + + +```python +posts = client.list_posts(limit=1) +assert posts.total == 4 +assert len(posts.results) == 1 + +posts2 = client.list_posts(limit=1, offset=1) +assert posts.results != posts2.results +``` + +### Commenting on a post + + +```python +cat_results = client.list_posts([anonymous_token("cat")]) +post_id = cat_results.results[0].id + +comment = client.create_comment("Excellent cat!", post_id) +``` + +### Getting all comments for a post + + +```python +comment_list = client.list_comments([named_token(CommentNamedToken.Post, post_id)]) +assert len(comment_list.results) != 0 +``` + +### Downloading an image to a local path + + +```python +cat_results = client.list_posts([anonymous_token("cat")]) +post_id = cat_results.results[0].id + +client.download_image_to_path(post_id, "/tmp/cat.jpg") +``` From 7915a638f5f6963f6dfab8b316662b7fa8c805fb Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:02:31 -0700 Subject: [PATCH 05/10] =?UTF-8?q?bump:=20version=200.6.0=20=E2=86=92=200.6?= =?UTF-8?q?.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- szurubooru-client/CHANGELOG.md | 6 ++++++ szurubooru-client/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/szurubooru-client/CHANGELOG.md b/szurubooru-client/CHANGELOG.md index 472eaa4..5d0dc06 100644 --- a/szurubooru-client/CHANGELOG.md +++ b/szurubooru-client/CHANGELOG.md @@ -1,3 +1,9 @@ +## v0.6.1 (2024-09-06) + +### Fix + +- **tokens**: fixing typesafe named tokens + ## v0.6.0 (2024-09-05) ### Feat diff --git a/szurubooru-client/Cargo.toml b/szurubooru-client/Cargo.toml index 051d500..7a03f8b 100644 --- a/szurubooru-client/Cargo.toml +++ b/szurubooru-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "szurubooru-client" -version = "0.6.0" +version = "0.6.1" edition = "2021" authors = ["Scott Lyons "] description = "A wrapper around the Szurubooru API, including type-safe Query and Sort tokens" From ae9daa8a27457f92ea0330ab6a4313942f6ad957 Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:02:54 -0700 Subject: [PATCH 06/10] docs(changelog): updating changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 472eaa4..5d0dc06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v0.6.1 (2024-09-06) + +### Fix + +- **tokens**: fixing typesafe named tokens + ## v0.6.0 (2024-09-05) ### Feat From df3dc66ea024ae3e8e6ba6bdf55ecf6774faec73 Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:05:26 -0700 Subject: [PATCH 07/10] build(pre-commit-config): updating pre-commit so it builds the full package on push --- .pre-commit-config.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5f34df0..f9289c0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,10 +14,13 @@ repos: - id: fmt - id: cargo-check stages: [pre-push] + args: [-F, python] - id: build stages: [pre-push] + args: [-F, python] - id: test stages: [pre-push] + args: [-F, python] - repo: https://github.com/compilerla/conventional-pre-commit rev: v3.4.0 hooks: From 2c5385ff4710247ab9f36f85150761436de0f1ab Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:06:52 -0700 Subject: [PATCH 08/10] refactor(tokens_rs): adding conditional compilation for an import --- szurubooru-client/src/tokens.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/szurubooru-client/src/tokens.rs b/szurubooru-client/src/tokens.rs index ebcab6f..8a19a81 100644 --- a/szurubooru-client/src/tokens.rs +++ b/szurubooru-client/src/tokens.rs @@ -2,6 +2,7 @@ //! warned that the types here help with the Type safety for the Tag names only. It does //! not guarantee that a given API endpoint will support the given tag. +#[cfg(feature = "python")] use crate::models::{PostSafety, PostType, SnapshotOperationType, SnapshotResourceType, UserRank}; #[cfg(feature = "python")] use pyo3::{exceptions::PyValueError, prelude::*}; From d0ae79f0292c532f6030235f2967b1540f9e52b3 Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 10:07:26 -0700 Subject: [PATCH 09/10] build(cargo_lock): updating Cargo.lock --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 9cbd504..968289e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1590,7 +1590,7 @@ dependencies = [ [[package]] name = "szurubooru-client" -version = "0.6.0" +version = "0.6.1" dependencies = [ "base64", "bytes", From 90b543d33bff910e5612c6bbe80387f9fa20a6c5 Mon Sep 17 00:00:00 2001 From: Scott Lyons Date: Fri, 6 Sep 2024 11:15:28 -0700 Subject: [PATCH 10/10] build(pre-commit-config): undoing push changes --- .pre-commit-config.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f9289c0..5f34df0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,13 +14,10 @@ repos: - id: fmt - id: cargo-check stages: [pre-push] - args: [-F, python] - id: build stages: [pre-push] - args: [-F, python] - id: test stages: [pre-push] - args: [-F, python] - repo: https://github.com/compilerla/conventional-pre-commit rev: v3.4.0 hooks: