~tsileo/blobstash-python

c3863e24c7bcebfc76a696082a2b80e4af013e30 — Thomas Sileo 3 years ago f75887e master
Bugfixes
3 files changed, 17 insertions(+), 8 deletions(-)

M .build.yml
M blobstash/base/client.py
M blobstash/docstore/__init__.py
M .build.yml => .build.yml +2 -2
@@ 9,8 9,8 @@ tasks:
- go: |
   mkdir go
   export GOPATH=/home/build/go
   wget -q https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
   sudo tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz
   wget -q https://dl.google.com/go/go1.13.8.linux-amd64.tar.gz
   sudo tar -C /usr/local -xzf go1.13.8.linux-amd64.tar.gz
- blobstash: |
   export GOPATH=/home/build/go
   cd blobstash

M blobstash/base/client.py => blobstash/base/client.py +8 -2
@@ 1,4 1,7 @@
"""BlobStash client."""
from typing import Any
from typing import Dict
from typing import Optional
import json
import os
from urllib.parse import urljoin


@@ 7,6 10,8 @@ import requests

DEFAULT_BASE_URL = "http://localhost:8050"

_JSON = Dict[str, Any]


class Client:
    """Basic client for API-specific client to build upon."""


@@ 16,7 21,7 @@ class Client:
        self.api_key = api_key or os.getenv("BLOBSTASH_API_KEY")
        self.json_encoder = json_encoder

    def request(self, verb, path, **kwargs):
    def request(self, verb: str, path: str, **kwargs) -> Optional[_JSON]:
        """Helper for making authenticated request to BlobStash."""
        raw = kwargs.pop("raw", False)
        json_data = kwargs.pop("json", None)


@@ 34,4 39,5 @@ class Client:
            return r

        r.raise_for_status()
        return r.json()
        if r.status_code != 204:
            return r.json()

M blobstash/docstore/__init__.py => blobstash/docstore/__init__.py +7 -4
@@ 367,16 367,19 @@ class Collection:

    def delete(self, doc_or_docs):
        """Delete the given document/list of document."""
        if isinstance(doc_or_docs, list):
        if not isinstance(doc_or_docs, list):
            docs = [doc_or_docs]

        for doc in docs:
            if isinstance(doc, dict):
                try:
                    _id = doc["_id"]
                    _id = doc["_id"].id()
                except KeyError:
                    raise MissingIDError
            elif isinstance(_id, ID):
                _id = _id.id()
            elif isinstance(doc, ID):
                _id = doc.id()
            elif isinstance(doc, str):
                _id = doc
            else:
                raise NotADocumentError