From cf02039f69760145a3723792fa7432dcd8317775 Mon Sep 17 00:00:00 2001 From: Andras Toth Date: Sun, 24 Aug 2025 16:53:54 +1000 Subject: [PATCH 1/2] Add new boards.fetch_all_items_by_board_id method --- docs/README.rst | 20 +++++++++----- docs/_build/doctrees/README.doctree | Bin 45599 -> 48479 bytes docs/_build/doctrees/environment.pickle | Bin 80649 -> 20116 bytes docs/_build/doctrees/index.doctree | Bin 4943 -> 5008 bytes docs/_build/html/.buildinfo | 2 +- docs/_build/html/.buildinfo.bak | 2 +- docs/_build/html/README.html | 21 ++++++++++----- docs/_build/html/_sources/README.rst.txt | 20 +++++++++----- docs/_build/html/searchindex.js | 2 +- monday/graphqlclient/client.py | 4 ++- monday/query_joins.py | 30 ++++++++++++++++++--- monday/resources/boards.py | 32 +++++++++++++++++++++-- monday/tests/test_board_resource.py | 9 ++++++- setup.cfg | 2 +- 14 files changed, 115 insertions(+), 29 deletions(-) diff --git a/docs/README.rst b/docs/README.rst index 08a07b4..0f9f765 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -26,10 +26,9 @@ Getting started from monday import MondayClient - monday = MondayClient('your token') - monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing') + monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing') Available methods ^^^^^^^^^^^^^^^^^ @@ -119,12 +118,21 @@ Boards Resource (monday.boards) as their ids, types, and settings. Accepts a comma separated list of board ids. -- ``fetch_items_by_board_id([board_ids], **kwargs)`` - Get all items on - a board(s). Accepts a comma separated list of board ids. +- ``fetch_items_by_board_id([board_ids], **kwargs)`` - Get items on + a board(s) with manual pagination. Accepts a comma separated list of + board ids. - - ``limit`` - The number of rows returned (*int*. no default). + - ``limit`` - The number of rows returned (*int*. default 500). - ``page`` - The page number returned, should you implement - pagination(*int*. no default). + pagination (*int*. no default). + - ``cursor`` - Token that can be used for pagination to ask for + next page. + +- ``fetch_all_items_by_board_id([board_ids], **kwargs)`` - Get all items on + a board(s) without manual pagination. Accepts a comma separated list of + board ids. + + - ``limit`` - The number of rows returned (*int*. default 500). - ``create_board(board_name, board_kind, workspace_id)`` - Create board with the given name and kind by (and optional) workspace id. diff --git a/docs/_build/doctrees/README.doctree b/docs/_build/doctrees/README.doctree index e071c458199f4d802850908fcd9398248cb7a4af..2205303e5b7541c912e00f49ad067ffdbbc80f44 100644 GIT binary patch literal 48479 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 TY@teh3k!b`c;MA=?En0~B^LhO literal 45599 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 S8n58#%CDY9j)y5TGReQ`*Eg5| delta 1587 zcmbu9OKTHR6vsQ0X7V6yNn2CWHf?Nalh!6tiV>^$qC&AyH+9iPlu72cXKXqX=7Dt~ zwTKVoqLzCV*McA}+yvaX5f`E$_z}A72hfF}6i<>Sounj14BS~{&N=fxzkAOAS?v3G z-(C0f*`BuYk9L^_P_^}>tSDQdbdYu`dd{}gyqVN=g_wM6VMp+>w6G%t*pR5X{19SK z#r~t|)HRbBW-14UYFer$E3#?n`DHydOUzYEFR%~dC}wVpgZTU-o)v=Zv@3Nf1Sen| zTo7A;i3K|=L*E@9hj50&0GI0bFgW9d1| zAcQkMvB^tS+#rDmvzwJf>4En5kujKsSh=1L>tC!F!M58&6Ad!X*ULcJWbYen$Q}3Z z38y2sSkN^xEjv4y#8g*92gmB=#^E@7?H)lsU)&MoWBwbTf}?t{%qJ#A5&4{y81_+L zK{n(SLoR?5)8jIxHpZps6(5yUEw5^I94i4q>Rln4swrfh-{%#^A$ZwLAKR4%lMU!z zVE?S1u=ASPb$^)2p356!u(fw5J(%&Nc}8V0s3Z8%VZjfu;=O%Jczy7&dIhv=#vscx zY}|Wc1KVBGmBx0zHETD66ZeX`OiSU^gUX)^>?x#-ZKss zy_o#DRdQ)bsw_&upAHLd$)cme;+^jtvXD$78#!=X{Oxm**w~)T(!5_+bF(`*4{cyuWA|7Xp&`@!mU0a&Y{iJZ6ilG#1R4u2Np$0vD<+N zdlQ)Jofl|_NphBEuiaQ*){QkjFBHX&s30sAM>|gnLcF-t^-&P<-~M2);0>2-^d?Ld O)7^`Lgg$L&lYaqr+8&7j diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo index e2524f2..58accb9 100644 --- a/docs/_build/html/.buildinfo +++ b/docs/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: b2a67ff9dd4e04f2139d366f3d4d4e28 +config: 69b590b155518f82f13020d8dcdeae58 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/.buildinfo.bak b/docs/_build/html/.buildinfo.bak index 58accb9..e2524f2 100644 --- a/docs/_build/html/.buildinfo.bak +++ b/docs/_build/html/.buildinfo.bak @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 69b590b155518f82f13020d8dcdeae58 +config: b2a67ff9dd4e04f2139d366f3d4d4e28 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/README.html b/docs/_build/html/README.html index f5e8ef7..f3dcc9b 100644 --- a/docs/_build/html/README.html +++ b/docs/_build/html/README.html @@ -49,10 +49,9 @@

Getting startedmonday is very simple to use – take a look at the below example:

from monday import MondayClient
 
-
 monday = MondayClient('your token')
 
-monday.items.create_item(board_id='12345678', group_id='today',  item_name='Do a thing')
+monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing')
 
@@ -135,12 +134,22 @@

Boards Resource (monday.boards)fetch_columns_by_board_id([board_ids]) - Get all columns, as well as their ids, types, and settings. Accepts a comma separated list of board ids.

-
  • fetch_items_by_board_id([board_ids], **kwargs) - Get all items on -a board(s). Accepts a comma separated list of board ids.

    +
  • fetch_items_by_board_id([board_ids], **kwargs) - Get items on +a board(s) with manual pagination. Accepts a comma separated list of +board ids.

      -
    • limit - The number of rows returned (int. no default).

    • +
    • limit - The number of rows returned (int. default 500).

    • page - The page number returned, should you implement -pagination(int. no default).

    • +pagination (int. no default).

      +
    • cursor - Token that can be used for pagination to ask for +next page.

    • +
    +
  • +
  • fetch_all_items_by_board_id([board_ids], **kwargs) - Get all items on +a board(s) without manual pagination. Accepts a comma separated list of +board ids.

    +
      +
    • limit - The number of rows returned (int. default 500).

  • create_board(board_name, board_kind, workspace_id) - Create board diff --git a/docs/_build/html/_sources/README.rst.txt b/docs/_build/html/_sources/README.rst.txt index 08a07b4..0f9f765 100644 --- a/docs/_build/html/_sources/README.rst.txt +++ b/docs/_build/html/_sources/README.rst.txt @@ -26,10 +26,9 @@ Getting started from monday import MondayClient - monday = MondayClient('your token') - monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing') + monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing') Available methods ^^^^^^^^^^^^^^^^^ @@ -119,12 +118,21 @@ Boards Resource (monday.boards) as their ids, types, and settings. Accepts a comma separated list of board ids. -- ``fetch_items_by_board_id([board_ids], **kwargs)`` - Get all items on - a board(s). Accepts a comma separated list of board ids. +- ``fetch_items_by_board_id([board_ids], **kwargs)`` - Get items on + a board(s) with manual pagination. Accepts a comma separated list of + board ids. - - ``limit`` - The number of rows returned (*int*. no default). + - ``limit`` - The number of rows returned (*int*. default 500). - ``page`` - The page number returned, should you implement - pagination(*int*. no default). + pagination (*int*. no default). + - ``cursor`` - Token that can be used for pagination to ask for + next page. + +- ``fetch_all_items_by_board_id([board_ids], **kwargs)`` - Get all items on + a board(s) without manual pagination. Accepts a comma separated list of + board ids. + + - ``limit`` - The number of rows returned (*int*. default 500). - ``create_board(board_name, board_kind, workspace_id)`` - Create board with the given name and kind by (and optional) workspace id. diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 1b6275c..2d6733d 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"Available methods":[[0,"available-methods"]],"Boards Resource (monday.boards)":[[0,"boards-resource-monday-boards"]],"Bug Reports":[[0,"bug-reports"]],"Contents:":[[1,null]],"Contributors":[[0,"contributors"]],"Getting started":[[0,"getting-started"]],"Groups Resource (monday.groups)":[[0,"groups-resource-monday-groups"]],"Indices and tables":[[1,"indices-and-tables"]],"Items Resource (monday.items)":[[0,"items-resource-monday-items"]],"Notifications Resource (monday.notifications)":[[0,"notifications-resource-monday-notifications"]],"Requirements":[[0,"requirements"]],"Tags Resource (monday.tags)":[[0,"tags-resource-monday-tags"]],"Updates Resource (monday.updates)":[[0,"updates-resource-monday-updates"]],"Users Resource (monday.users)":[[0,"users-resource-monday-users"]],"Welcome to monday\u2019s documentation!":[[1,null]],"Workspaces Resource (monday.workspaces)":[[0,"workspaces-resource-monday-workspaces"]],"monday":[[0,null]]},"docnames":["README","index"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["README.rst","index.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":0,"1":0,"100":0,"11":0,"12345678":0,"25":0,"3":0,"500mb":0,"A":0,"For":0,"The":0,"about":0,"accept":0,"accordingli":0,"account":0,"activ":0,"add":0,"add_file_to_column":0,"add_teams_to_workspac":0,"add_users_to_workspac":0,"addit":0,"alb":0,"all":0,"allow":0,"also":0,"an":0,"ani":0,"api":0,"ar":0,"archiv":0,"archive_group":0,"archive_item_by_id":0,"argument":0,"arrai":0,"associ":0,"attach":0,"avail":1,"below":0,"board":1,"board_id":0,"board_kind":0,"board_nam":0,"boardkind":0,"boardsorderbi":0,"boardstat":0,"boyc":0,"bug":1,"c":0,"can":0,"certain":0,"chang":0,"change_item_valu":0,"change_multiple_column_valu":0,"chdastolfo":0,"check":0,"click":0,"client":0,"cochran":0,"code":0,"color":0,"column":0,"column_id":0,"column_valu":0,"com":0,"comma":0,"contain":0,"contributor":1,"creat":0,"create_board":0,"create_group":0,"create_item":0,"create_labels_if_miss":0,"create_notif":0,"create_subitem":0,"create_upd":0,"create_workspac":0,"created_at":0,"default":0,"delet":0,"delete_group":0,"delete_item_by_id":0,"delete_teams_from_workspac":0,"delete_users_from_workspac":0,"descript":0,"detail":0,"do":0,"doc":0,"doe":0,"duplic":0,"duplicate_group":0,"email":0,"error":0,"exampl":0,"fals":0,"fetch":0,"fetch_board":0,"fetch_boards_by_id":0,"fetch_columns_by_board_id":0,"fetch_items_by_board_id":0,"fetch_items_by_column_valu":0,"fetch_items_by_id":0,"fetch_tag":0,"fetch_upd":0,"fetch_updates_for_item":0,"fetch_us":0,"file":0,"format":0,"from":0,"get":1,"get_groups_by_board":0,"get_items_by_group":0,"get_workspac":0,"given":0,"group":1,"group_id":0,"group_nam":0,"have":0,"here":0,"i":0,"id":0,"identifi":0,"implement":0,"import":0,"index":1,"info":0,"inform":0,"instal":0,"int":0,"integ":0,"item":1,"item_id":0,"item_nam":0,"its":0,"json":0,"keyword":0,"kind":0,"know":0,"kwarg":0,"least":0,"lemi":0,"librari":0,"limit":0,"list":0,"look":0,"lucio":0,"member":0,"method":1,"mitsuru":0,"modul":1,"mondaycli":0,"more":0,"morello":0,"move":0,"move_item_to_group":0,"multipl":0,"mutat":0,"name":0,"nile":0,"none":0,"notif":1,"number":0,"one":0,"option":0,"order":0,"order_bi":0,"out":0,"overview":0,"p2":0,"page":[0,1],"pagin":0,"parent":0,"parent_item_id":0,"pass":0,"pevner":0,"pip":0,"platform":0,"prefer":0,"privat":0,"public":0,"python":0,"queri":0,"re":0,"read":0,"recipi":0,"report":1,"requir":1,"resourc":1,"retriev":0,"return":0,"row":0,"same":0,"sampl":0,"search":1,"see":0,"seki":0,"send":0,"separ":0,"set":0,"share":0,"should":0,"simpl":0,"sinc":0,"singl":0,"size":0,"specifi":0,"spencersamuel7":0,"start":1,"state":0,"subitem":0,"subitem_nam":0,"support":0,"tag":1,"tag_id":0,"take":0,"target_id":0,"target_typ":0,"taylor":0,"tbd":0,"team":0,"team_id":0,"text":0,"them":0,"thing":0,"todai":0,"token":0,"toni":0,"trigger":0,"try":0,"type":0,"underneath":0,"uniqu":0,"up":0,"updat":1,"update_bodi":0,"upload":0,"us":0,"used_at":0,"user":1,"user_id":0,"valu":0,"veri":0,"well":0,"which":0,"within":0,"workspac":1,"workspace_id":0,"yogesh":0,"you":0,"your":0},"titles":["monday","Welcome to monday\u2019s documentation!"],"titleterms":{"":1,"avail":0,"board":0,"bug":0,"content":1,"contributor":0,"document":1,"get":0,"group":0,"indic":1,"item":0,"method":0,"mondai":[0,1],"notif":0,"report":0,"requir":0,"resourc":0,"start":0,"tabl":1,"tag":0,"updat":0,"user":0,"welcom":1,"workspac":0}}) \ No newline at end of file +Search.setIndex({"alltitles":{"Available methods":[[0,"available-methods"]],"Boards Resource (monday.boards)":[[0,"boards-resource-monday-boards"]],"Bug Reports":[[0,"bug-reports"]],"Contents:":[[1,null]],"Contributors":[[0,"contributors"]],"Getting started":[[0,"getting-started"]],"Groups Resource (monday.groups)":[[0,"groups-resource-monday-groups"]],"Indices and tables":[[1,"indices-and-tables"]],"Items Resource (monday.items)":[[0,"items-resource-monday-items"]],"Notifications Resource (monday.notifications)":[[0,"notifications-resource-monday-notifications"]],"Requirements":[[0,"requirements"]],"Tags Resource (monday.tags)":[[0,"tags-resource-monday-tags"]],"Updates Resource (monday.updates)":[[0,"updates-resource-monday-updates"]],"Users Resource (monday.users)":[[0,"users-resource-monday-users"]],"Welcome to monday\u2019s documentation!":[[1,null]],"Workspaces Resource (monday.workspaces)":[[0,"workspaces-resource-monday-workspaces"]],"monday":[[0,null]]},"docnames":["README","index"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["README.rst","index.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":0,"1":0,"100":0,"11":0,"12345678":0,"25":0,"3":0,"500":0,"500mb":0,"A":0,"For":0,"The":0,"about":0,"accept":0,"accordingli":0,"account":0,"activ":0,"add":0,"add_file_to_column":0,"add_teams_to_workspac":0,"add_users_to_workspac":0,"addit":0,"alb":0,"all":0,"allow":0,"also":0,"an":0,"ani":0,"api":0,"ar":0,"archiv":0,"archive_group":0,"archive_item_by_id":0,"argument":0,"arrai":0,"ask":0,"associ":0,"attach":0,"avail":1,"below":0,"board":1,"board_id":0,"board_kind":0,"board_nam":0,"boardkind":0,"boardsorderbi":0,"boardstat":0,"boyc":0,"bug":1,"c":0,"can":0,"certain":0,"chang":0,"change_item_valu":0,"change_multiple_column_valu":0,"chdastolfo":0,"check":0,"click":0,"client":0,"cochran":0,"code":0,"color":0,"column":0,"column_id":0,"column_valu":0,"com":0,"comma":0,"contain":0,"contributor":1,"creat":0,"create_board":0,"create_group":0,"create_item":0,"create_labels_if_miss":0,"create_notif":0,"create_subitem":0,"create_upd":0,"create_workspac":0,"created_at":0,"cursor":0,"default":0,"delet":0,"delete_group":0,"delete_item_by_id":0,"delete_teams_from_workspac":0,"delete_users_from_workspac":0,"descript":0,"detail":0,"do":0,"doc":0,"doe":0,"duplic":0,"duplicate_group":0,"email":0,"error":0,"exampl":0,"fals":0,"fetch":0,"fetch_all_items_by_board_id":0,"fetch_board":0,"fetch_boards_by_id":0,"fetch_columns_by_board_id":0,"fetch_items_by_board_id":0,"fetch_items_by_column_valu":0,"fetch_items_by_id":0,"fetch_tag":0,"fetch_upd":0,"fetch_updates_for_item":0,"fetch_us":0,"file":0,"format":0,"from":0,"get":1,"get_groups_by_board":0,"get_items_by_group":0,"get_workspac":0,"given":0,"group":1,"group_id":0,"group_nam":0,"have":0,"here":0,"i":0,"id":0,"identifi":0,"implement":0,"import":0,"index":1,"info":0,"inform":0,"instal":0,"int":0,"integ":0,"item":1,"item_id":0,"item_nam":0,"its":0,"json":0,"keyword":0,"kind":0,"know":0,"kwarg":0,"least":0,"lemi":0,"librari":0,"limit":0,"list":0,"look":0,"lucio":0,"manual":0,"member":0,"method":1,"mitsuru":0,"modul":1,"mondaycli":0,"more":0,"morello":0,"move":0,"move_item_to_group":0,"multipl":0,"mutat":0,"name":0,"next":0,"nile":0,"none":0,"notif":1,"number":0,"one":0,"option":0,"order":0,"order_bi":0,"out":0,"overview":0,"p2":0,"page":[0,1],"pagin":0,"parent":0,"parent_item_id":0,"pass":0,"pevner":0,"pip":0,"platform":0,"prefer":0,"privat":0,"public":0,"python":0,"queri":0,"re":0,"read":0,"recipi":0,"report":1,"requir":1,"resourc":1,"retriev":0,"return":0,"row":0,"same":0,"sampl":0,"search":1,"see":0,"seki":0,"send":0,"separ":0,"set":0,"share":0,"should":0,"simpl":0,"sinc":0,"singl":0,"size":0,"specifi":0,"spencersamuel7":0,"start":1,"state":0,"subitem":0,"subitem_nam":0,"support":0,"tag":1,"tag_id":0,"take":0,"target_id":0,"target_typ":0,"taylor":0,"tbd":0,"team":0,"team_id":0,"text":0,"them":0,"thing":0,"todai":0,"token":0,"toni":0,"trigger":0,"try":0,"type":0,"underneath":0,"uniqu":0,"up":0,"updat":1,"update_bodi":0,"upload":0,"us":0,"used_at":0,"user":1,"user_id":0,"valu":0,"veri":0,"well":0,"which":0,"within":0,"without":0,"workspac":1,"workspace_id":0,"yogesh":0,"you":0,"your":0},"titles":["monday","Welcome to monday\u2019s documentation!"],"titleterms":{"":1,"avail":0,"board":0,"bug":0,"content":1,"contributor":0,"document":1,"get":0,"group":0,"indic":1,"item":0,"method":0,"mondai":[0,1],"notif":0,"report":0,"requir":0,"resourc":0,"start":0,"tabl":1,"tag":0,"updat":0,"user":0,"welcom":1,"workspac":0}}) \ No newline at end of file diff --git a/monday/graphqlclient/client.py b/monday/graphqlclient/client.py index 9a811fa..6d58197 100644 --- a/monday/graphqlclient/client.py +++ b/monday/graphqlclient/client.py @@ -1,5 +1,4 @@ import json - import requests from monday.exceptions import MondayQueryError @@ -8,6 +7,9 @@ DEFAULT_TIMEOUT = 60 +DEFAULT_PAGE_LIMIT_ITEMS = 500 + + class GraphQLClient: def __init__(self, endpoint, timeout=DEFAULT_TIMEOUT): self.endpoint = endpoint diff --git a/monday/query_joins.py b/monday/query_joins.py index aaa44b5..445ed4a 100644 --- a/monday/query_joins.py +++ b/monday/query_joins.py @@ -290,7 +290,7 @@ def delete_update_query(item_id): def get_updates_for_item_query(item, limit): query = '''query{ - items(ids: %s){ + items(ids: %s) { updates (limit: %s) { id, body, @@ -365,8 +365,8 @@ def get_board_items_query(board_id: Union[str, int], query_params: Optional[Mapp items_page_params = gather_params(raw_params, excluded_params=["board_id"]) wrapped_params = f"({items_page_params})" if items_page_params else "" - query = '''query{ - boards(ids: %s){ + query = '''query { + boards(ids: %s) { name items_page %s { cursor @@ -391,6 +391,30 @@ def get_board_items_query(board_id: Union[str, int], query_params: Optional[Mapp return query +def get_next_items_query(limit: Optional[int] = None, cursor: Optional[str] = None) -> str: + query = '''query { + next_items_page (limit: %s, cursor: "%s") { + cursor + items { + group { + id + title + } + id + name + column_values { + id + text + type + value + } + } + } + }''' % (limit, cursor) + + return query + + def get_boards_query(limit: int = None, page: int = None, ids: List[int] = None, board_kind: BoardKind = None, state: BoardState = None, order_by: BoardsOrderBy = None, workspace_ids: List[int] = None): parameters = locals().items() diff --git a/monday/resources/boards.py b/monday/resources/boards.py index 46b293b..33ff941 100644 --- a/monday/resources/boards.py +++ b/monday/resources/boards.py @@ -1,9 +1,11 @@ from typing import List, Optional, Union, Any, Mapping from monday.query_joins import get_boards_query, get_boards_by_id_query, get_board_items_query, \ - get_columns_by_board_query, create_board_by_workspace_query, duplicate_board_query + get_next_items_query, get_columns_by_board_query, create_board_by_workspace_query, \ + duplicate_board_query from monday.resources.base import BaseResource from monday.resources.types import BoardKind, BoardState, BoardsOrderBy, DuplicateType +from monday.graphqlclient.client import DEFAULT_PAGE_LIMIT_ITEMS class BoardResource(BaseResource): @@ -18,10 +20,36 @@ def fetch_boards_by_id(self, board_ids: Union[int, str]): return self.client.execute(query) def fetch_items_by_board_id(self, board_ids: Union[int, str], query_params: Optional[Mapping[str, Any]] = None, - limit: Optional[int] = None, cursor: Optional[str] = None): + limit: Optional[int] = DEFAULT_PAGE_LIMIT_ITEMS, cursor: Optional[str] = None): query = get_board_items_query(board_ids, query_params=query_params, limit=limit, cursor=cursor) return self.client.execute(query) + def fetch_next_items_by_cursor(self, cursor: str, limit: Optional[int] = None): + query = get_next_items_query(limit=limit, cursor=cursor) + return self.client.execute(query) + + def fetch_all_items_by_board_id(self, board_ids: Union[int, str], query_params: Optional[Mapping[str, Any]] = None, + limit: Optional[int] = DEFAULT_PAGE_LIMIT_ITEMS) -> List[dict]: + items: List[dict] = [] + cursor: Optional[str] = None + + while True: + if cursor: + response = self.fetch_next_items_by_cursor(cursor=cursor, limit=limit) + items_page = response["data"]["next_items_page"] + else: + response = self.fetch_items_by_board_id(board_ids, query_params=query_params, + limit=limit, cursor=cursor) + items_page = response["data"]["boards"][0]["items_page"] + + items.extend(items_page.get("items", [])) + cursor = items_page.get("cursor") + + if not cursor: + break + + return items + def fetch_columns_by_board_id(self, board_ids: Union[int, str]): query = get_columns_by_board_query(board_ids) return self.client.execute(query) diff --git a/monday/tests/test_board_resource.py b/monday/tests/test_board_resource.py index a822a42..86c86e8 100644 --- a/monday/tests/test_board_resource.py +++ b/monday/tests/test_board_resource.py @@ -1,5 +1,5 @@ from monday.query_joins import duplicate_board_query, create_board_by_workspace_query, get_boards_query, \ - get_boards_by_id_query, get_board_items_query, get_columns_by_board_query + get_boards_by_id_query, get_board_items_query, get_next_items_query, get_columns_by_board_query from monday.resources.types import ItemsQueryRuleOperator from monday.tests.test_case_resource import BaseTestCase @@ -42,6 +42,13 @@ def test_get_board_items_query(self): items_line = 'items' self.assertIn(items_line, query) + def test_get_next_items_query(self): + limit = 100 + cursor = 'MSw0NTc5ODYzMTkyLFRWX2ljOWt2MVpnT...' + query = get_next_items_query(limit=limit, cursor=cursor) + items_page_line = f'next_items_page (limit: {limit}, cursor: "{cursor}")' + self.assertIn(items_page_line, query) + def test_get_board_items_query_with_limit_and_cursor(self): limit = 100 cursor = 'MSw0NTc5ODYzMTkyLFRWX2ljOWt2MVpnT...' diff --git a/setup.cfg b/setup.cfg index 224a779..08aedd7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,2 @@ [metadata] -description-file = README.md \ No newline at end of file +description_file = README.md From 6089b29ac422c62360c72d5d63b8ef8d314bcb48 Mon Sep 17 00:00:00 2001 From: Andras Toth Date: Sun, 24 Aug 2025 21:08:34 +1000 Subject: [PATCH 2/2] Fix doc builds remove docs/_build/ --- .github/workflows/documentation.yml | 6 +- .gitignore | 4 +- docs/Makefile | 2 +- docs/_build/doctrees/README.doctree | Bin 48479 -> 0 bytes docs/_build/doctrees/environment.pickle | Bin 20116 -> 0 bytes docs/_build/doctrees/index.doctree | Bin 5008 -> 0 bytes docs/_build/html/.buildinfo | 4 - docs/_build/html/.buildinfo.bak | 4 - docs/_build/html/.doctrees/README.doctree | Bin 46388 -> 0 bytes docs/_build/html/.doctrees/environment.pickle | Bin 19765 -> 0 bytes docs/_build/html/.doctrees/index.doctree | Bin 5005 -> 0 bytes docs/_build/html/README.html | 317 ------ docs/_build/html/_sources/README.rst.txt | 377 -------- docs/_build/html/_sources/index.rst.txt | 21 - docs/_build/html/_static/alabaster.css | 663 ------------- docs/_build/html/_static/basic.css | 906 ------------------ docs/_build/html/_static/custom.css | 1 - docs/_build/html/_static/doctools.js | 149 --- .../html/_static/documentation_options.js | 13 - docs/_build/html/_static/file.png | Bin 286 -> 0 bytes docs/_build/html/_static/github-banner.svg | 5 - docs/_build/html/_static/language_data.js | 192 ---- docs/_build/html/_static/minus.png | Bin 90 -> 0 bytes docs/_build/html/_static/plus.png | Bin 90 -> 0 bytes docs/_build/html/_static/pygments.css | 84 -- docs/_build/html/_static/searchtools.js | 635 ------------ docs/_build/html/_static/sphinx_highlight.js | 154 --- docs/_build/html/genindex.html | 103 -- docs/_build/html/index.html | 139 --- docs/_build/html/objects.inv | Bin 271 -> 0 bytes docs/_build/html/search.html | 121 --- docs/_build/html/searchindex.js | 1 - docs/make.bat | 2 +- 33 files changed, 8 insertions(+), 3895 deletions(-) delete mode 100644 docs/_build/doctrees/README.doctree delete mode 100644 docs/_build/doctrees/environment.pickle delete mode 100644 docs/_build/doctrees/index.doctree delete mode 100644 docs/_build/html/.buildinfo delete mode 100644 docs/_build/html/.buildinfo.bak delete mode 100644 docs/_build/html/.doctrees/README.doctree delete mode 100644 docs/_build/html/.doctrees/environment.pickle delete mode 100644 docs/_build/html/.doctrees/index.doctree delete mode 100644 docs/_build/html/README.html delete mode 100644 docs/_build/html/_sources/README.rst.txt delete mode 100644 docs/_build/html/_sources/index.rst.txt delete mode 100644 docs/_build/html/_static/alabaster.css delete mode 100644 docs/_build/html/_static/basic.css delete mode 100644 docs/_build/html/_static/custom.css delete mode 100644 docs/_build/html/_static/doctools.js delete mode 100644 docs/_build/html/_static/documentation_options.js delete mode 100644 docs/_build/html/_static/file.png delete mode 100644 docs/_build/html/_static/github-banner.svg delete mode 100644 docs/_build/html/_static/language_data.js delete mode 100644 docs/_build/html/_static/minus.png delete mode 100644 docs/_build/html/_static/plus.png delete mode 100644 docs/_build/html/_static/pygments.css delete mode 100644 docs/_build/html/_static/searchtools.js delete mode 100644 docs/_build/html/_static/sphinx_highlight.js delete mode 100644 docs/_build/html/genindex.html delete mode 100644 docs/_build/html/index.html delete mode 100644 docs/_build/html/objects.inv delete mode 100644 docs/_build/html/search.html delete mode 100644 docs/_build/html/searchindex.js diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 6ace7a6..8e7c9c0 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -16,12 +16,12 @@ jobs: pip install sphinx sphinx_rtd_theme myst_parser - name: Sphinx build run: | - sphinx-build doc _build + sphinx-build docs docs/_build - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} with: publish_branch: gh-pages github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: _build/ - force_orphan: true \ No newline at end of file + publish_dir: docs/_build/html/ + force_orphan: true diff --git a/.gitignore b/.gitignore index 2afde06..268c176 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,11 @@ .DS_Store dist/ build/ +_build/ +docs/_build/ .mypy_cache/ .ropeproject/ .vscode/ venv/ test.py -*.egg-info \ No newline at end of file +*.egg-info diff --git a/docs/Makefile b/docs/Makefile index 430f5d6..7a269e3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -5,7 +5,7 @@ SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = -BUILDDIR = _build +BUILDDIR = docs/_build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) diff --git a/docs/_build/doctrees/README.doctree b/docs/_build/doctrees/README.doctree deleted file mode 100644 index 2205303e5b7541c912e00f49ad067ffdbbc80f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48479 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 TY@teh3k!b`c;MA=?En0~B^LhO diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle deleted file mode 100644 index cb50a9aff09e2dbfd43f59a7fe40257044d956b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20116 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 ez(&Ye!(6d?`T7&%HW!)6;>aSZK;9U`h1 z%}0%&KfbwO|IE4{dzqGj>PE58Rc=}|5%NgqPxIG5&cC1UnRd#~Rh*?B&&>iPJRt)= z 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 J0!8%a{{@n}8RGx| diff --git a/docs/_build/html/.doctrees/environment.pickle b/docs/_build/html/.doctrees/environment.pickle deleted file mode 100644 index 3dede576cbb1a06ac3886cceb8a989c811456321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19765 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 WJypcGtwq^nar_WfAVib$%>M&feYfxc diff --git a/docs/_build/html/.doctrees/index.doctree b/docs/_build/html/.doctrees/index.doctree deleted file mode 100644 index 36b81b3eb2af0b21d8296179a80bfeb7946bc760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5005 zcmds5TW=gm6?Wpxc*b`-@hXA@^{%ps_cAlyWQD*F2$WqUu+~Ts*N3QG(_J%FcHg$E z+Manp+6CU`h1 z%?FKN{NVb6{WI%+>}6U8svE^VSGj4?M93qZKh0nJF#mqOYuYJ0Q*oAhJU0uF@PrKf zlt=mFd{-=(B`*$VHi(A#B#a}Ujh#vv(=v{nkSWbmXCMRqrsJiYY3@7y@v=&Uj7FXJ zGwGcu%~I_^_^YXOzRn`Y`MmSiTl;T6*x&o2bARvtgYNS8;>_`|!hDu!M+>Q}N(c8y z0GU)0NbM*QXMyi9?F1ZmS@z;cGZ{e#chWf4&XJBiopOHU z_%h|5mZ!X%i>1do-g)htd_-3H|9adAKJ!jeKCm+FQ5fv2gb{OENy-&ZPkEl1CC!GkBNuJ4BNk2D zt%#Ci)U3#Mr}r)FP`!YMvX|WN6{PAxR`q1$^HDcdIyct>8S(s}k@bm z!y@0&tWPM|aJ2a!m!{-X{~h^~+Lg8}`BwT_fMDtd5-wJyg6S0(Oq*6*sd-piHXHl! z{r#gMk1Vy0s^Hm1d|^WXB5Km&$M!7`&1%B&&S>b4u=}FGf@#XgI(h9P#okTRs?N%% zumAP4U%zXv*+a~t(mt4v{~bD%&y(brKjNnbj$g+$etOw8NZ8bbpFB_a zS=_Rm;-@Xtcf4=N> z&qCxcFOG=#eeLFT9Bu%IKV5cs9S0Kr!}EkI97y;g4r_%YDb7+)TtMOPb0`$!DGJ4S z6RFhhuVL`7{~d#WUiPwQU~t^JvVi3LqK*L=s;k#Q*nz43aoOp05J>oM&l9ddAmI{( zX)dV3d=bh^EbNvmir?s=~Bs#+gnsoga$sp=l#h^OWg0%`xy%{iE0q z6AV_U_{LRHXN+Ln9zteu1*D(o1Om(DFiQiB){x;{sxxU7S7}hSFwV{P0BWLG^V;GQ zvqlvmsttEEh|>^3cU_^_N!+q+QBe5VVuqv8qzcA8lUle{t&8)@4Q25Qv!pzUQzS=z z%3;o{W?8UcGHjSFK9aDaW;#=qP{TBQ-p__OZk?h(r90^5EW}J3ka?V*ME8>sZ07RF zqaZv)X_e_g=L;Pr@%`59qRZ1XPF(?t1t@jkHF%qcY_d^UzNV#NwdCgZ+{&Da<0JCa z^+NCT4%O~kvkP;Z%_hA8+*1N33T)xO7O-fTu_1@WedNTeCt0) zqIl-VE*ca_Z6Z6zio5llmL;BcPo;+`)@{Y7$!JHaHo&6X%>fz%5$C zbF-<&Xv9aZkV6sRW1G5|sK2U0{2t)GpTVmY40YX(i=i9D9xM71bK4UrFg*ZY_#3Qj zO^DqmS%RXAe(11WMi~asl3+$g18|^>3)>VZRMwvplOb_8h*{x`)NP*RpbXj(}aj^4wxif97&1rsS}&@T^e zQ5M=ZdJC5VvoyjjSc7hiqPf|gnJpS{OhemXGN2NbdUwn((PZ&`SA^pD_yPR - - - - - - - monday — monday documentation - - - - - - - - - - - - - - - - - - - -

    -
    -
    - - -
    - -
    -

    monday

    -

    All Contributors A monday.com Python Client Library

    -

    For an overview of the Monday API, click -here.

    -
    -

    Requirements

    -
      -
    • Python >= 3.11

    • -
    -
    -
    -

    Getting started

    -

    pip install monday

    -

    monday is very simple to use – take a look at the below example:

    -
    from monday import MondayClient
    -
    -monday = MondayClient('your token')
    -
    -monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing')
    -
    -
    -
    -
    -

    Available methods

    -
    -
    -

    Items Resource (monday.items)

    -
      -
    • create_item(board_id, group_id, item_name, column_values=None, create_labels_if_missing=False) -- Create an item on a board in the given group with name item_name.

    • -
    • create_subitem(parent_item_id, subitem_name, column_values=None, create_labels_if_missing=False) -- Create a subitem underneath a given parent item. Monday API will -return an error if the board you’re trying to add to does not have a -subitems column/at least one subitem created.

    • -
    • fetch_items_by_column_value(board_id, column_id, value) - Fetch -items on a board by column value. The value argument accepts a list.

    • -
    • fetch_items_by_id(board_id, [ids]) - Fetch items from any board -by ids, passed in as an array of integers.

    • -
    • change_item_value(board_id, item_id, column_id, value) - Change -column values for item on a board. Check Monday’s API for which -columns are supported.

    • -
    • change_multiple_column_values(board_id, item_id, column_values, create_labels_if_missing=False) -- Change multiple column values for item on a board. Column values -should be passed in as JSON. Check Monday’s API for which columns are -supported.

    • -
    • add_file_to_column(item_id, column_id, file) - Upload a file to a -file type column specified by column_id. Monday limits uploads to -500MB in size.

    • -
    • move_item_to_group(item_id, group_id) - Move the item to a group -within the same board.

    • -
    • archive_item_by_id(item_id) - Archive the item by item_id.

    • -
    • delete_item_by_id(item_id) - Delete the item by item_id.

    • -
    -
    -
    -

    Updates Resource (monday.updates)

    -
      -
    • create_update(item_id, update_body) - Create an update attached -to a given item.

    • -
    • fetch_updates(limit, page=None) - Fetch a certain number of -updates, starting from the given page. Default is 1

    • -
    • fetch_updates_for_item(board_id, item_id, limit) - Fetch all -updates for a certain item on a certain board up to a certain limit, -set by you. Default is 100 updates

    • -
    -
    -
    -

    Tags Resource (monday.tags)

    -
      -
    • fetch_tags(tag_ids=None) - Fetch all tags associated with an -account. Optionally takes a list containing tag ids (if you know -them). Returns IDs, names, and colors.

    • -
    -
    -
    -

    Boards Resource (monday.boards)

    -
      -
    • fetch_boards(**kwargs) - Fetch boards associated with an account. -Returns boards and their groups, tags, and columns. Accepts keyword -arguments:

      -
        -
      • limit - The number of boards returned (int. Default is 25).

      • -
      • page - The page number returned, should you implement -pagination(int. Starts at 1).

      • -
      • ids - A list of the unique board identifier(s) (List[int]).

      • -
      • board_kind - The board’s kind (BoardKind. public / private / -share).

      • -
      • state - The state of the board (BoardState. all / active / -archived / deleted. Default is active).

      • -
      • order_by - The order in which to retrieve your boards -(BoardsOrderBy. created_at / used_at).

      • -
      -
    • -
    • fetch_boards_by_id([board_ids]) - Since Monday does not allow -querying boards by name, you can use fetch_boards to get a list -of boards, and then fetch_boards_by_id to get more detailed info -about the groups and columns on that board. Accepts a comma separated -list of board ids.

    • -
    • fetch_columns_by_board_id([board_ids]) - Get all columns, as well -as their ids, types, and settings. Accepts a comma separated list of -board ids.

    • -
    • fetch_items_by_board_id([board_ids], **kwargs) - Get items on -a board(s) with manual pagination. Accepts a comma separated list of -board ids.

      -
        -
      • limit - The number of rows returned (int. default 500).

      • -
      • page - The page number returned, should you implement -pagination (int. no default).

      • -
      • cursor - Token that can be used for pagination to ask for -next page.

      • -
      -
    • -
    • fetch_all_items_by_board_id([board_ids], **kwargs) - Get all items on -a board(s) without manual pagination. Accepts a comma separated list of -board ids.

      -
        -
      • limit - The number of rows returned (int. default 500).

      • -
      -
    • -
    • create_board(board_name, board_kind, workspace_id) - Create board -with the given name and kind by (and optional) workspace id.

    • -
    -
    -
    -

    Users Resource (monday.users)

    -
      -
    • fetch_users(**kwargs) - Fetch user information associated with an -account. See Monday API docs for a list of accepted keyword -arguments.

    • -
    -
    -
    -

    Workspaces Resource (monday.workspaces)

    -
      -
    • get_workspaces() - Get all workspaces.

    • -
    • create_workspace(name, kind, description) - Create workspace with -the given name, kind and description.

    • -
    • add_users_to_workspace(workspace_id, [user_ids], kind) - Add -given users of the given kind to the given workspace.

    • -
    • delete_users_from_workspace(workspace_id, [user_ids]) - Delete -given users from the given workspace.

    • -
    • add_teams_to_workspace(workspace_id, [team_ids]) - Add given -teams to the given workspace.

    • -
    • delete_teams_from_workspace(workspace_id, [team_ids]) - Delete -given teams from the given workspace.

    • -
    -
    -
    -

    Groups Resource (monday.groups)

    -
      -
    • get_groups_by_board([board_ids]) - Get all groups associated with -a certain board or boards. Accepts a single id or a comma separated -list of ids.

    • -
    • get_items_by_group(board_id, group_id) - Get all items that are -members of a given group.

    • -
    • create_group(board_id, group_name) - Create a group on a given -board.

    • -
    • duplicate_group(board_id, group_id) - Duplicate a group and all -its items on a given board.

    • -
    • archive_group(board_id, group_id) - Archive a group on a given -board.

    • -
    • delete_group(board_id, group_id) - Delete a group on a given -board.

    • -
    -
    -
    -

    Notifications Resource (monday.notifications)

    -
      -
    • create_notification(user_id, target_id, text, target_type) - The -create_notification mutation allows to trigger a notification within -the platform (will also send out an email if the recipient’s email -preferences are set up accordingly). ### Additional Resources and -Code Samples

    • -
    • Read and format all of the items on a -board

    • -
    -
    -

    Contributors

    -

    Lemi Boyce💻 🐛 🚧

    -

    Tony Morello💻

    -

    chdastolfo💻 🐛 📖 🚧

    -

    Lucio Mitsuru Seki💻

    -

    YOGESH NILE💻

    -

    spencersamuel7💻

    -

    Alb. C💻

    -

    pevner-p2💻

    -

    Taylor Cochran💻

    -
    -

    Bug Reports

    -

    TBD

    -
    -
    -
    -
    - - -
    - -
    -
    - -
    -
    - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/README.rst.txt b/docs/_build/html/_sources/README.rst.txt deleted file mode 100644 index 0f9f765..0000000 --- a/docs/_build/html/_sources/README.rst.txt +++ /dev/null @@ -1,377 +0,0 @@ -monday -====== - -.. raw:: html - - - -|All Contributors| A monday.com Python Client Library - -For an overview of the Monday API, `click -here `__. - -Requirements -^^^^^^^^^^^^ - -- Python >= 3.11 - -Getting started -^^^^^^^^^^^^^^^ - -``pip install monday`` - -``monday`` is very simple to use – take a look at the below example: - -.. code:: python - - from monday import MondayClient - - monday = MondayClient('your token') - - monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a thing') - -Available methods -^^^^^^^^^^^^^^^^^ - -Items Resource (monday.items) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``create_item(board_id, group_id, item_name, column_values=None, create_labels_if_missing=False)`` - - Create an item on a board in the given group with name item_name. - -- ``create_subitem(parent_item_id, subitem_name, column_values=None, create_labels_if_missing=False)`` - - Create a subitem underneath a given parent item. Monday API will - return an error if the board you’re trying to add to does not have a - subitems column/at least one subitem created. - -- ``fetch_items_by_column_value(board_id, column_id, value)`` - Fetch - items on a board by column value. The value argument accepts a list. - -- ``fetch_items_by_id(board_id, [ids])`` - Fetch items from any board - by ids, passed in as an array of integers. - -- ``change_item_value(board_id, item_id, column_id, value)`` - Change - column values for item on a board. Check Monday’s API for which - columns are supported. - -- ``change_multiple_column_values(board_id, item_id, column_values, create_labels_if_missing=False)`` - - Change multiple column values for item on a board. Column values - should be passed in as JSON. Check Monday’s API for which columns are - supported. - -- ``add_file_to_column(item_id, column_id, file)`` - Upload a file to a - file type column specified by column_id. Monday limits uploads to - 500MB in size. - -- ``move_item_to_group(item_id, group_id)`` - Move the item to a group - within the same board. - -- ``archive_item_by_id(item_id)`` - Archive the item by item_id. - -- ``delete_item_by_id(item_id)`` - Delete the item by item_id. - -Updates Resource (monday.updates) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``create_update(item_id, update_body)`` - Create an update attached - to a given item. - -- ``fetch_updates(limit, page=None)`` - Fetch a certain number of - updates, starting from the given page. Default is 1 - -- ``fetch_updates_for_item(board_id, item_id, limit)`` - Fetch all - updates for a certain item on a certain board up to a certain limit, - set by you. Default is 100 updates - -Tags Resource (monday.tags) -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``fetch_tags(tag_ids=None)`` - Fetch all tags associated with an - account. Optionally takes a list containing tag ids (if you know - them). Returns IDs, names, and colors. - -Boards Resource (monday.boards) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``fetch_boards(**kwargs)`` - Fetch boards associated with an account. - Returns boards and their groups, tags, and columns. Accepts keyword - arguments: - - - ``limit`` - The number of boards returned (*int*. Default is 25). - - ``page`` - The page number returned, should you implement - pagination(*int*. Starts at 1). - - ``ids`` - A list of the unique board identifier(s) (*List[int]*). - - ``board_kind`` - The board’s kind (*BoardKind*. public / private / - share). - - ``state`` - The state of the board (*BoardState*. all / active / - archived / deleted. Default is active). - - ``order_by`` - The order in which to retrieve your boards - (*BoardsOrderBy*. created_at / used_at). - -- ``fetch_boards_by_id([board_ids])`` - Since Monday does not allow - querying boards by name, you can use ``fetch_boards`` to get a list - of boards, and then ``fetch_boards_by_id`` to get more detailed info - about the groups and columns on that board. Accepts a comma separated - list of board ids. - -- ``fetch_columns_by_board_id([board_ids])`` - Get all columns, as well - as their ids, types, and settings. Accepts a comma separated list of - board ids. - -- ``fetch_items_by_board_id([board_ids], **kwargs)`` - Get items on - a board(s) with manual pagination. Accepts a comma separated list of - board ids. - - - ``limit`` - The number of rows returned (*int*. default 500). - - ``page`` - The page number returned, should you implement - pagination (*int*. no default). - - ``cursor`` - Token that can be used for pagination to ask for - next page. - -- ``fetch_all_items_by_board_id([board_ids], **kwargs)`` - Get all items on - a board(s) without manual pagination. Accepts a comma separated list of - board ids. - - - ``limit`` - The number of rows returned (*int*. default 500). - -- ``create_board(board_name, board_kind, workspace_id)`` - Create board - with the given name and kind by (and optional) workspace id. - -Users Resource (monday.users) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``fetch_users(**kwargs)`` - Fetch user information associated with an - account. See Monday API docs for a list of accepted keyword - arguments. - -Workspaces Resource (monday.workspaces) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``get_workspaces()`` - Get all workspaces. - -- ``create_workspace(name, kind, description)`` - Create workspace with - the given name, kind and description. - -- ``add_users_to_workspace(workspace_id, [user_ids], kind)`` - Add - given users of the given kind to the given workspace. - -- ``delete_users_from_workspace(workspace_id, [user_ids])`` - Delete - given users from the given workspace. - -- ``add_teams_to_workspace(workspace_id, [team_ids])`` - Add given - teams to the given workspace. - -- ``delete_teams_from_workspace(workspace_id, [team_ids])`` - Delete - given teams from the given workspace. - -Groups Resource (monday.groups) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``get_groups_by_board([board_ids])`` - Get all groups associated with - a certain board or boards. Accepts a single id or a comma separated - list of ids. - -- ``get_items_by_group(board_id, group_id)`` - Get all items that are - members of a given group. - -- ``create_group(board_id, group_name)`` - Create a group on a given - board. - -- ``duplicate_group(board_id, group_id)`` - Duplicate a group and all - its items on a given board. - -- ``archive_group(board_id, group_id)`` - Archive a group on a given - board. - -- ``delete_group(board_id, group_id)`` - Delete a group on a given - board. - -Notifications Resource (monday.notifications) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- ``create_notification(user_id, target_id, text, target_type)`` - The - create_notification mutation allows to trigger a notification within - the platform (will also send out an email if the recipient’s email - preferences are set up accordingly). ### Additional Resources and - Code Samples - -- `Read and format all of the items on a - board `__ - -Contributors ------------- - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - -
    - -Lemi Boyce💻 🐛 🚧 - -.. raw:: html - - - -Tony Morello💻 - -.. raw:: html - - - -chdastolfo💻 🐛 📖 🚧 - -.. raw:: html - - - -Lucio Mitsuru Seki💻 - -.. raw:: html - - - -YOGESH NILE💻 - -.. raw:: html - - - -spencersamuel7💻 - -.. raw:: html - - - -Alb. C💻 - -.. raw:: html - -
    - -pevner-p2💻 - -.. raw:: html - - - -Taylor Cochran💻 - -.. raw:: html - -
    - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -.. raw:: html - - - -Bug Reports -~~~~~~~~~~~ - -TBD - -.. |All Contributors| image:: https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square - :target: #contributors- - diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index baef355..0000000 --- a/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. monday documentation master file, created by - sphinx-quickstart on Fri Jan 6 11:43:09 2023. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to monday's documentation! -================================== - -.. toctree:: - :maxdepth: 4 - :caption: Contents: - - README - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` \ No newline at end of file diff --git a/docs/_build/html/_static/alabaster.css b/docs/_build/html/_static/alabaster.css deleted file mode 100644 index 7e75bf8..0000000 --- a/docs/_build/html/_static/alabaster.css +++ /dev/null @@ -1,663 +0,0 @@ -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar { - max-height: 100%; - overflow-y: auto; -} - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox { - margin: 1em 0; -} - -div.sphinxsidebar .search > div { - display: table-cell; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin-left: 0; - margin-right: 0; - margin-top: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: unset; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - -@media screen and (max-width: 940px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.sphinxsidebar { - display: block; - float: none; - width: unset; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - min-width: auto; /* fixes width on small screens, breaks .hll */ - padding: 0; - } - - .hll { - /* "fixes" the breakage */ - width: max-content; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Hide ugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} - -img.github { - position: absolute; - top: 0; - border: 0; - right: 0; -} \ No newline at end of file diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css deleted file mode 100644 index 0028826..0000000 --- a/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,906 +0,0 @@ -/* - * Sphinx stylesheet -- basic theme. - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin-top: 10px; -} - -ul.search li { - padding: 5px 0; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: inherit; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/custom.css b/docs/_build/html/_static/custom.css deleted file mode 100644 index 2a924f1..0000000 --- a/docs/_build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js deleted file mode 100644 index 0398ebb..0000000 --- a/docs/_build/html/_static/doctools.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Base JavaScript utilities for all Sphinx HTML documentation. - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js deleted file mode 100644 index 7e4c114..0000000 --- a/docs/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,13 +0,0 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/docs/_build/html/_static/github-banner.svg b/docs/_build/html/_static/github-banner.svg deleted file mode 100644 index c47d9dc..0000000 --- a/docs/_build/html/_static/github-banner.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js deleted file mode 100644 index c7fe6c6..0000000 --- a/docs/_build/html/_static/language_data.js +++ /dev/null @@ -1,192 +0,0 @@ -/* - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, if available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/docs/_build/html/_static/minus.png b/docs/_build/html/_static/minus.png deleted file mode 100644 index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK diff --git a/docs/_build/html/_static/plus.png b/docs/_build/html/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css deleted file mode 100644 index 9392ddc..0000000 --- a/docs/_build/html/_static/pygments.css +++ /dev/null @@ -1,84 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #8F5902; font-style: italic } /* Comment */ -.highlight .err { color: #A40000; border: 1px solid #EF2929 } /* Error */ -.highlight .g { color: #000 } /* Generic */ -.highlight .k { color: #004461; font-weight: bold } /* Keyword */ -.highlight .l { color: #000 } /* Literal */ -.highlight .n { color: #000 } /* Name */ -.highlight .o { color: #582800 } /* Operator */ -.highlight .x { color: #000 } /* Other */ -.highlight .p { color: #000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8F5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8F5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8F5902 } /* Comment.Preproc */ -.highlight .cpf { color: #8F5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8F5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8F5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A40000 } /* Generic.Deleted */ -.highlight .ge { color: #000; font-style: italic } /* Generic.Emph */ -.highlight .ges { color: #000 } /* Generic.EmphStrong */ -.highlight .gr { color: #EF2929 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888 } /* Generic.Output */ -.highlight .gp { color: #745334 } /* Generic.Prompt */ -.highlight .gs { color: #000; font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #A40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000 } /* Literal.Date */ -.highlight .m { color: #900 } /* Literal.Number */ -.highlight .s { color: #4E9A06 } /* Literal.String */ -.highlight .na { color: #C4A000 } /* Name.Attribute */ -.highlight .nb { color: #004461 } /* Name.Builtin */ -.highlight .nc { color: #000 } /* Name.Class */ -.highlight .no { color: #000 } /* Name.Constant */ -.highlight .nd { color: #888 } /* Name.Decorator */ -.highlight .ni { color: #CE5C00 } /* Name.Entity */ -.highlight .ne { color: #C00; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000 } /* Name.Function */ -.highlight .nl { color: #F57900 } /* Name.Label */ -.highlight .nn { color: #000 } /* Name.Namespace */ -.highlight .nx { color: #000 } /* Name.Other */ -.highlight .py { color: #000 } /* Name.Property */ -.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000 } /* Name.Variable */ -.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ -.highlight .pm { color: #000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #F8F8F8 } /* Text.Whitespace */ -.highlight .mb { color: #900 } /* Literal.Number.Bin */ -.highlight .mf { color: #900 } /* Literal.Number.Float */ -.highlight .mh { color: #900 } /* Literal.Number.Hex */ -.highlight .mi { color: #900 } /* Literal.Number.Integer */ -.highlight .mo { color: #900 } /* Literal.Number.Oct */ -.highlight .sa { color: #4E9A06 } /* Literal.String.Affix */ -.highlight .sb { color: #4E9A06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4E9A06 } /* Literal.String.Char */ -.highlight .dl { color: #4E9A06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8F5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4E9A06 } /* Literal.String.Double */ -.highlight .se { color: #4E9A06 } /* Literal.String.Escape */ -.highlight .sh { color: #4E9A06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4E9A06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4E9A06 } /* Literal.String.Other */ -.highlight .sr { color: #4E9A06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4E9A06 } /* Literal.String.Single */ -.highlight .ss { color: #4E9A06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465A4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000 } /* Name.Function.Magic */ -.highlight .vc { color: #000 } /* Name.Variable.Class */ -.highlight .vg { color: #000 } /* Name.Variable.Global */ -.highlight .vi { color: #000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000 } /* Name.Variable.Magic */ -.highlight .il { color: #900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js deleted file mode 100644 index 91f4be5..0000000 --- a/docs/_build/html/_static/searchtools.js +++ /dev/null @@ -1,635 +0,0 @@ -/* - * Sphinx JavaScript utilities for the full-text search. - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename, kind] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -// Global search result kind enum, used by themes to style search results. -class SearchResultKind { - static get index() { return "index"; } - static get object() { return "object"; } - static get text() { return "text"; } - static get title() { return "title"; } -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms, highlightTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - - const [docName, title, anchor, descr, score, _filename, kind] = item; - - let listItem = document.createElement("li"); - // Add a class representing the item's type: - // can be used by a theme's CSS selector for styling - // See SearchResultKind for the class names. - listItem.classList.add(`kind-${kind}`); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms, anchor) - ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = Documentation.ngettext( - "Search finished, found one page matching the search query.", - "Search finished, found ${resultCount} pages matching the search query.", - resultCount, - ).replace('${resultCount}', resultCount); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms, - highlightTerms, -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; -// Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. -// Order the results by score (in opposite order of appearance, since the -// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. -const _orderResultsByScoreThenName = (a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString, anchor) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - for (const removalQuery of [".headerlink", "script", "style"]) { - htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); - } - if (anchor) { - const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); - if (anchorContent) return anchorContent.textContent; - - console.warn( - `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` - ); - } - - // if anchor not specified or not found, fall back to main content - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent) return docContent.textContent; - - console.warn( - "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.setAttribute("role", "list"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - _parseQuery: (query) => { - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; - }, - - /** - * execute search (requires search index to be loaded) - */ - _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename, kind]. - const normalResults = []; - const nonMainIndexResults = []; - - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase().trim(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - const score = Math.round(Scorer.title * queryLower.length / title.length); - const boost = titles[file] === title ? 1 : 0; // add a boost for document titles - normalResults.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score + boost, - filenames[file], - SearchResultKind.title, - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id, isMain] of foundEntries) { - const score = Math.round(100 * queryLower.length / entry.length); - const result = [ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - SearchResultKind.index, - ]; - if (isMain) { - normalResults.push(result); - } else { - nonMainIndexResults.push(result); - } - } - } - } - - // lookup as object - objectTerms.forEach((term) => - normalResults.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) { - normalResults.forEach((item) => (item[4] = Scorer.score(item))); - nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); - } - - // Sort each group of results by score and then alphabetically by name. - normalResults.sort(_orderResultsByScoreThenName); - nonMainIndexResults.sort(_orderResultsByScoreThenName); - - // Combine the result groups in (reverse) order. - // Non-main index entries are typically arbitrary cross-references, - // so display them after other results. - let results = [...nonMainIndexResults, ...normalResults]; - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - return results.reverse(); - }, - - query: (query) => { - const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); - const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - SearchResultKind.object, - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - // find documents, if any, containing the query word in their text/title term indices - // use Object.hasOwnProperty to avoid mismatching against prototype properties - const arr = [ - { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term }, - { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - if (!terms.hasOwnProperty(word)) { - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord)) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - } - if (!titleTerms.hasOwnProperty(word)) { - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord)) - arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); - }); - } - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, new Map()); - const fileScores = scoreMap.get(file); - fileScores.set(word, record.score); - }); - }); - - // create the mapping - files.forEach((file) => { - if (!fileMap.has(file)) fileMap.set(file, [word]); - else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w))); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - SearchResultKind.text, - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords, anchor) => { - const text = Search.htmlToText(htmlText, anchor); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/docs/_build/html/_static/sphinx_highlight.js b/docs/_build/html/_static/sphinx_highlight.js deleted file mode 100644 index 8a96c69..0000000 --- a/docs/_build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,154 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html deleted file mode 100644 index cdf61c6..0000000 --- a/docs/_build/html/genindex.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - Index — monday documentation - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    - - -

    Index

    - -
    - -
    - - -
    - -
    -
    - -
    -
    - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html deleted file mode 100644 index 712e984..0000000 --- a/docs/_build/html/index.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - Welcome to monday’s documentation! — monday documentation - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index 794c94a9d7271ecf243ab6f20c274efc6ecf1f01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmY#Z2rkIT%&Sny%qvUHE6FdaR47X=D$dN$Q!wIERtPA{&q_@$u~Nv*&r3u)FOraG=-9k%wmPK%$!sOAf23_TTql*T%4MsP+FXsm#$Ei zlbNK)RdI{EsI=r`X{d&t=SHuS{$UqPLpYeaU!+cX@=W8&v*$}y!ittIf0p`e>5{O9 zsZUkZmOg6`Ipm_~W$Wmp*J89H(?jb}aPg$i#lfOppB6r|%bF3nh9M+;*6dl~lOiU~ zoWK0U)Y - - - - - - Search — monday documentation - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    - -

    Search

    - - - - -

    - Searching for multiple words only shows matches that contain - all words. -

    - - -
    - - - -
    - - -
    - - -
    - -
    -
    - -
    -
    - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index 2d6733d..0000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"alltitles":{"Available methods":[[0,"available-methods"]],"Boards Resource (monday.boards)":[[0,"boards-resource-monday-boards"]],"Bug Reports":[[0,"bug-reports"]],"Contents:":[[1,null]],"Contributors":[[0,"contributors"]],"Getting started":[[0,"getting-started"]],"Groups Resource (monday.groups)":[[0,"groups-resource-monday-groups"]],"Indices and tables":[[1,"indices-and-tables"]],"Items Resource (monday.items)":[[0,"items-resource-monday-items"]],"Notifications Resource (monday.notifications)":[[0,"notifications-resource-monday-notifications"]],"Requirements":[[0,"requirements"]],"Tags Resource (monday.tags)":[[0,"tags-resource-monday-tags"]],"Updates Resource (monday.updates)":[[0,"updates-resource-monday-updates"]],"Users Resource (monday.users)":[[0,"users-resource-monday-users"]],"Welcome to monday\u2019s documentation!":[[1,null]],"Workspaces Resource (monday.workspaces)":[[0,"workspaces-resource-monday-workspaces"]],"monday":[[0,null]]},"docnames":["README","index"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["README.rst","index.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":0,"1":0,"100":0,"11":0,"12345678":0,"25":0,"3":0,"500":0,"500mb":0,"A":0,"For":0,"The":0,"about":0,"accept":0,"accordingli":0,"account":0,"activ":0,"add":0,"add_file_to_column":0,"add_teams_to_workspac":0,"add_users_to_workspac":0,"addit":0,"alb":0,"all":0,"allow":0,"also":0,"an":0,"ani":0,"api":0,"ar":0,"archiv":0,"archive_group":0,"archive_item_by_id":0,"argument":0,"arrai":0,"ask":0,"associ":0,"attach":0,"avail":1,"below":0,"board":1,"board_id":0,"board_kind":0,"board_nam":0,"boardkind":0,"boardsorderbi":0,"boardstat":0,"boyc":0,"bug":1,"c":0,"can":0,"certain":0,"chang":0,"change_item_valu":0,"change_multiple_column_valu":0,"chdastolfo":0,"check":0,"click":0,"client":0,"cochran":0,"code":0,"color":0,"column":0,"column_id":0,"column_valu":0,"com":0,"comma":0,"contain":0,"contributor":1,"creat":0,"create_board":0,"create_group":0,"create_item":0,"create_labels_if_miss":0,"create_notif":0,"create_subitem":0,"create_upd":0,"create_workspac":0,"created_at":0,"cursor":0,"default":0,"delet":0,"delete_group":0,"delete_item_by_id":0,"delete_teams_from_workspac":0,"delete_users_from_workspac":0,"descript":0,"detail":0,"do":0,"doc":0,"doe":0,"duplic":0,"duplicate_group":0,"email":0,"error":0,"exampl":0,"fals":0,"fetch":0,"fetch_all_items_by_board_id":0,"fetch_board":0,"fetch_boards_by_id":0,"fetch_columns_by_board_id":0,"fetch_items_by_board_id":0,"fetch_items_by_column_valu":0,"fetch_items_by_id":0,"fetch_tag":0,"fetch_upd":0,"fetch_updates_for_item":0,"fetch_us":0,"file":0,"format":0,"from":0,"get":1,"get_groups_by_board":0,"get_items_by_group":0,"get_workspac":0,"given":0,"group":1,"group_id":0,"group_nam":0,"have":0,"here":0,"i":0,"id":0,"identifi":0,"implement":0,"import":0,"index":1,"info":0,"inform":0,"instal":0,"int":0,"integ":0,"item":1,"item_id":0,"item_nam":0,"its":0,"json":0,"keyword":0,"kind":0,"know":0,"kwarg":0,"least":0,"lemi":0,"librari":0,"limit":0,"list":0,"look":0,"lucio":0,"manual":0,"member":0,"method":1,"mitsuru":0,"modul":1,"mondaycli":0,"more":0,"morello":0,"move":0,"move_item_to_group":0,"multipl":0,"mutat":0,"name":0,"next":0,"nile":0,"none":0,"notif":1,"number":0,"one":0,"option":0,"order":0,"order_bi":0,"out":0,"overview":0,"p2":0,"page":[0,1],"pagin":0,"parent":0,"parent_item_id":0,"pass":0,"pevner":0,"pip":0,"platform":0,"prefer":0,"privat":0,"public":0,"python":0,"queri":0,"re":0,"read":0,"recipi":0,"report":1,"requir":1,"resourc":1,"retriev":0,"return":0,"row":0,"same":0,"sampl":0,"search":1,"see":0,"seki":0,"send":0,"separ":0,"set":0,"share":0,"should":0,"simpl":0,"sinc":0,"singl":0,"size":0,"specifi":0,"spencersamuel7":0,"start":1,"state":0,"subitem":0,"subitem_nam":0,"support":0,"tag":1,"tag_id":0,"take":0,"target_id":0,"target_typ":0,"taylor":0,"tbd":0,"team":0,"team_id":0,"text":0,"them":0,"thing":0,"todai":0,"token":0,"toni":0,"trigger":0,"try":0,"type":0,"underneath":0,"uniqu":0,"up":0,"updat":1,"update_bodi":0,"upload":0,"us":0,"used_at":0,"user":1,"user_id":0,"valu":0,"veri":0,"well":0,"which":0,"within":0,"without":0,"workspac":1,"workspace_id":0,"yogesh":0,"you":0,"your":0},"titles":["monday","Welcome to monday\u2019s documentation!"],"titleterms":{"":1,"avail":0,"board":0,"bug":0,"content":1,"contributor":0,"document":1,"get":0,"group":0,"indic":1,"item":0,"method":0,"mondai":[0,1],"notif":0,"report":0,"requir":0,"resourc":0,"start":0,"tabl":1,"tag":0,"updat":0,"user":0,"welcom":1,"workspac":0}}) \ No newline at end of file diff --git a/docs/make.bat b/docs/make.bat index 32bb245..65e2800 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -8,7 +8,7 @@ if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=. -set BUILDDIR=_build +set BUILDDIR=docs/_build %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 (