pycliarr.api.base_api module

class pycliarr.api.base_api.BaseCliApi(host_url: str, api_key: str, username: Optional[str] = None, password: Optional[str] = None)[source]

Bases: object

Low level base API client class.

Provides basic requests access (put/get/post/delete) to an API, handling api key and basic authentication

api_key
close() → None[source]

Close session with the endpoint.

host_url
request(method: str, path: str, url_params: Optional[Dict[str, Any]] = None, json_data: Union[Dict[str, Any], List[Dict[str, Any]], None] = None) → Union[Dict[str, Any], List[Dict[str, Any]]][source]

Send a request to the host API

Parameters:
  • method
  • path (str) – host endpoint path. Must start with a ‘/’. e.g. /api/queue
  • url_params (Optional[Dict[str, Any]]) – Optional list of query parameters. e.g. {‘term’: ‘some keyword’}
  • json_data (Optional[json_data]) – Optional JSON data to send
Returns:

Response object form requests.

Return type:

requests.models.Response

request_delete(path: str, url_params: Optional[Dict[str, Any]] = None) → Union[Dict[str, Any], List[Dict[str, Any]]][source]

Shortcut for request withe method=delete.

request_get(path: str, url_params: Optional[Dict[str, Any]] = None) → Union[Dict[str, Any], List[Dict[str, Any]]][source]

Shortcut for request withe method=get.

request_post(path: str, json_data: Union[Dict[str, Any], List[Dict[str, Any]], None] = None) → Union[Dict[str, Any], List[Dict[str, Any]]][source]

Shortcut for request withe method=post.

request_put(path: str, json_data: Union[Dict[str, Any], List[Dict[str, Any]], None] = None, url_params: Optional[Dict[str, Any]] = None) → Union[Dict[str, Any], List[Dict[str, Any]]][source]

Shortcut for request withe method=put.

to_path(basename: str) → pathlib.Path[source]

Remove invalid chars from a file/directory name depending on the platform.

class pycliarr.api.base_api.BaseCliApiItem(**kwargs)[source]

Bases: object

Generic handling of an item based on a dict representation.

Items can be build specifying a list of parameters, a dict, or a json string. All fields are directly accessible as attributes.

This is especially usedul by clients to directly convert or create items received or to send by BaseCliApi subclasses

add_attribute(name: str, value: Any) → None[source]
classmethod from_dict(dict_data: Dict[Any, Any]) → BaseItemClass[source]

Build an item and populate it based on the given dictionnary.

classmethod from_json(json_data: str) → BaseItemClass[source]

Build an item and populate it based on json data.

to_dict() → Dict[Any, Any][source]
to_json() → str[source]