Skip to content

docs: Fix documentation mismatches with actual client behavior - #958

Merged
vdusek merged 2 commits into
masterfrom
docs/fix-audit-doc-mismatches
Jul 19, 2026
Merged

docs: Fix documentation mismatches with actual client behavior#958
vdusek merged 2 commits into
masterfrom
docs/fix-audit-doc-mismatches

Conversation

@vdusek

@vdusek vdusek commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Fixes 12 documentation issues found by an engineering audit, where docs, examples, or docstrings contradict what the client actually does:

  • The custom HTTP client guide example (HttpxClient) now raises ApifyApiError for error responses instead of returning them raw, and the guide documents this part of the call contract (resource clients rely on it, e.g. to translate a 404 into a None return value).
  • The streaming concepts page no longer claims all three streaming methods yield a raw impit.Response — it now describes the actual yielded value per method (stream_record yields a dict with the response under value, stream and stream_record may yield None).
  • The pagination concepts page no longer lists ListOfRequests among page models exposing total/offset/count; it now explains its cursor-based pagination via next_cursor.
  • The logging formatter example no longer references %(status_code)s (absent on most records, causing logging errors) and no longer attaches a duplicate handler; the page notes which properties are present on every record.
  • The upgrading-to-v3 guide cross-links now include the site baseUrl (/api/client/python/...), fixing 6 links that 404ed on the published site.
  • The conda instruction for the brotli extra installs brotli-python (the Python bindings) instead of brotli (the C library).
  • RunClient.resurrect docstrings cite the real SUCCEEDED status instead of the nonexistent FINISHED.
  • wait_for_finish docstrings in RunClient and BuildClient spell the terminal status as TIMED-OUT (the real literal) instead of TIMED_OUT.
  • The quick-start page refers to the Run model's default_dataset_id attribute instead of the v2-era run dictionary with defaultDatasetId.
  • The README dataset example passes fields as list[str] per the signature instead of a comma-separated string.
  • The README quick-start examples handle the Run | None return of call() instead of accessing attributes on a possible None.
  • The timeouts concepts page states that no_timeout is capped at 24 hours by the default client instead of claiming it disables the timeout entirely.

✍️ Drafted by Claude Code

@vdusek vdusek added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Jul 17, 2026
@vdusek vdusek self-assigned this Jul 17, 2026
@github-actions github-actions Bot added this to the 145th sprint - Tooling team milestone Jul 17, 2026
@vdusek
vdusek requested a review from Pijukatel July 17, 2026 14:27
@vdusek
vdusek marked this pull request as ready for review July 17, 2026 14:27
@vdusek
vdusek requested a review from szaganek as a code owner July 17, 2026 14:27
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.64%. Comparing base (2adf515) to head (c15a2d1).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #958   +/-   ##
=======================================
  Coverage   94.64%   94.64%           
=======================================
  Files          58       58           
  Lines        5263     5263           
=======================================
  Hits         4981     4981           
  Misses        282      282           
Flag Coverage Δ
integration 92.30% <ø> (ø)
unit 83.94% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

<TabItem value="conda-forge" label="conda-forge">
```bash
conda install conda-forge::apify-client conda-forge::brotli
conda install conda-forge::apify-client conda-forge::brotli-python

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Conda forge does not have any notion of extras dependencies. So I am not sure this will work. It would require some testing. Maybe better to drop all brotli-related advice until tested.

I created a follow-up:
conda-forge/apify-client-feedstock#3

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it seems Conda-forge doesn't recognize the extras, so installing Brotli directly is the equivalent, isn't it?

Maybe I can put an additional note there to clarify that.

@vdusek
vdusek merged commit 0b55bb7 into master Jul 19, 2026
28 checks passed
@vdusek
vdusek deleted the docs/fix-audit-doc-mismatches branch July 19, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants