Python module implementing the Hydrus API
Project description
Hydrus API
Python module implementing the Hydrus API.
Requirements
- Python >= 3.9 (I think; Let me know if you can use this with an older Python version)
- requests library (
pip install requests
)
Installation
$ pip install hydrus-api
If you want to use the package in your own (installable) Python project, specify it in your setup.py
using:
install_requires=['hydrus-api']
.
Contributing
Please feel free to contribute in the form of a pull request when the API changes (keep close to the existing code style or you'll create more work than help); I've been bad about merging these until now, I'll try to be more conscientious of them.
Try to avoid checking in your modifications to .vscode/settings.json
and .env
please.
I can't guarantee any fixed timespan in which I'll update this module myself when the API changes -- the only reason it was updated now is because prkc kept bugging me; So if you desperately need this module to be updated, please create a pull request.
Description
Read the (latest) official documentation here.
When instantiating hydrus_api.Client
the acccess_key
is optional, allowing you to initially manually request
permissions using request_new_permissions()
. Alternatively there is hydrus_api.utils.request_api_key()
to make this
easier. You can instantiate a new Client
with the returned access key after that.
If the API version the module is developed against and the API version of the Hydrus client differ, there is a chance that using this API module might have unintended consequences -- be careful.
If something with the API goes wrong, a subclass of APIError
(MissingParameter
, InsufficientAccess
,
DatabaseLocked
, ServerError
) or APIError
itself will be raised with the
requests.Response
object that caused the error.
APIError
will only be raised directly, if the returned status code is unrecognized.
The module provides Permission
, URLType
, ImportStatus
, TagAction
, TagStatus
, PageType
, PageState
,
FileSortType
, ServiceType
, NoteConflictResolution
and DuplicateStatus
Enums for your convenience. Due to a
limitation of JSON, all dictionary keys that are returned by the client will be strings, so when using Enum members to
index a dictionary that was returned by the client, make sure to use the string representation of its value. Usually you
would have to do this: str(Enum.member.value)
, but the listed Enums allow you to just do str(Enum.member)
instead to
get the string representation of the member's value directly.
The module provides convenience functions in hydrus_api.utils
that are not strictly part of the API, e.g.
add_and_tag_files()
and get_page_list()
; read their docstrings to figure out what they do.
The client methods add_file()
and add_and_tag_files()
accept str
, pathlib.Path
and objects that implement the
internal BinaryFileLike
protocol (i.e. all objects that provide a read()
-method that returns bytes
).
The function hydrus_api.utils.parse_hydrus_metadata_file
behaves similarly, except that it accepts objects that
implement the internal TextFileLike
protocol (i.e. its read()
-method returns a string).
Check out examples/
for some example applications. Some of them might be outdated, but they should be good enough to
give you an idea how to use the module.
Changes with v5.0.0
To avoid confusion, starting with v5.0.0, responses will be returned unmodified from the API, exactly like described in the official documentation. The previous functionality of automatically indexing a single top-level key has been removed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hydrus_api-5.1.1.tar.gz
.
File metadata
- Download URL: hydrus_api-5.1.1.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Linux/6.10.10-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a00dc36dd5fe31166222708a5eeac174a954150e23794fa31ebf4dc4c1074262 |
|
MD5 | de389c98dda84b33a901a5b8649fc1d1 |
|
BLAKE2b-256 | d979b888c8f7649b4890bbefc7933ec9c2a0d21624e5aca8a44d8fb587c3454c |
File details
Details for the file hydrus_api-5.1.1-py3-none-any.whl
.
File metadata
- Download URL: hydrus_api-5.1.1-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Linux/6.10.10-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2317d9cd5f1e0814127ba7b657426dac5214beeb3be6f9b9b95de3532eb47283 |
|
MD5 | 5e5c77e89d588b087049e5069f2aa993 |
|
BLAKE2b-256 | f16e34f4a2cf28ee5bec42a039000113afd10524d264fb5e44a84c83a481fe33 |