* fix(apps): add type hints to whitelisted methods
* fix(recorder): add type hints to whitelisted methods
* fix(comments): add type hints to whitelisted methods
* fix(oauth2): add type hints to whitelisted methods
* fix(google_calendar): add type hints to whitelisted methods
* fix(print): add type hints to whitelisted methods
* fix(print_format_builder): add type hints to whitelisted methods
* refactor(network_printer_settings): remove unused args
* fix(document): add type hints to whitelisted methods
* fix(user_settings): add type hints to whitelisted methods
* fix(mapper): add type hints to whitelisted methods
* fix(connected_app): add type hints to whitelisted methods
* fix(google_contacts): add type hints to whitelisted methods
* fix(frappecloud_billing): add type hints to whitelisted methods
* test: rewrite test to fit the strict type check
* fix(social_login_key): add type hints to whitelisted methods
* fix(share): add type hints to whitelisted methods
* fix(webhook): add type hints to whitelisted methods
* fix(workflow): add type hints to whitelisted methods
* fix(workflow main): add type hints to whitelisted methods
* fix(workflow_action): add type hints to whitelisted methods
* fix: flexible type hint
* fix(client): add type hints to whitelisted methods
* fix: fix some of the tighter types
* fix(frappecloud_billing): add str typehint to whitelisted endpoint
* fix: target_doc can be dict/json string
---------
Co-authored-by: Ankush Menat <ankush@frappe.io>
The `check_parent_permission` calls in client.py are redundant because
`frappe.has_permission` already handles child tables via `has_child_permission`,
which performs the same validations plus additional permlevel checks.
Very often you're picking same documents again and again, there's no
need to validate them.
Also, document is JUST selected using search_link, so it's 99%
guaranteed to be valid.
The real purpose of this function is to provide "fetch from" feature,
not link validation like the name suggests.
It will get validated server side anyway.
* feat: Add deprecation_dumpster.py file
* docs: add jovial and jocose docstring for frappe/deprecation_dumpster.py
* refactor: fill the dumpster with its own kind
* refactor: move to the deprecation dumpster
* chore: color coding class
* fix: only check import error when import errors
- Don’t change indicator on filter change if user can’t write to board. They can’t save filters
- Invoke `update_order` on Kanban board init() only if user has `write` access to reference doctype (non-deliberate invocation)
- All deliberate invocations of `update_order` via UI actions are blocked/hidden without `write` access
- Remove elements with no access instead of hiding to avoid inspect element hacks
- Card Actions: Block card dragging if no `write` access to reference doctype
- Card Actions: Block card adding if no `create` access to reference doctype
refactor: clean up code to py39+ supported syntax
- f-strings instead of format
- latest typing support instead of pre 3.9 TitleCase
- remove UTF-8 declarations.
- many more changes
Powered by https://github.com/asottile/pyupgrade/ + manual cleanups