sg-python-api 0.1.1__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/COMPATIBILITY.md +2 -2
  2. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/PKG-INFO +14 -14
  3. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/README.md +1 -1
  4. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/docs/development.md +1 -1
  5. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/docs/migration-guide.md +1 -1
  6. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/pyproject.toml +2 -1
  7. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/_sdist_contract.py +1 -1
  8. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/probe_wire.py +325 -25
  9. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/run_conformance.sh +2 -2
  10. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/run_installed_tests.py +1 -1
  11. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_async_client.py +72 -50
  12. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_client.py +77 -59
  13. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_files.py +22 -102
  14. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_methods.py +98 -5
  15. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_protocol.py +0 -93
  16. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_version.py +1 -1
  17. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_activity.py +1 -1
  18. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_async.py +1 -1
  19. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_misc_methods.py +180 -30
  20. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_nav.py +2 -2
  21. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_sync.py +1 -1
  22. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/test_async.py +44 -84
  23. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/test_upload_routing.py +0 -1
  24. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/test_uploads.py +117 -231
  25. sg_python_api-0.1.2/tests/fixtures/activity_stream_read.json +40 -0
  26. sg_python_api-0.1.2/tests/fixtures/nav_search_entity.json +42 -0
  27. sg_python_api-0.1.2/tests/fixtures/nav_search_string.json +39 -0
  28. sg_python_api-0.1.2/tests/fixtures/note_thread_read.json +35 -0
  29. sg_python_api-0.1.2/tests/fixtures/user_subscriptions_read.json +32 -0
  30. sg_python_api-0.1.2/tests/live/test_methods.py +306 -0
  31. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_config.py +2 -2
  32. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_init.py +1 -1
  33. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_parity.py +218 -8
  34. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/_wire_replay.py +56 -1
  35. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_artifact_evidence.py +5 -5
  36. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_benchmark.py +10 -10
  37. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_run_conformance.py +18 -18
  38. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_run_installed_tests.py +3 -3
  39. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_validate_artifacts.py +13 -13
  40. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_wire_fixtures.py +779 -285
  41. sg_python_api-0.1.1/tests/files/test_multipart.py +0 -146
  42. sg_python_api-0.1.1/tests/fixtures/activity_stream_read.json +0 -40
  43. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/.gitignore +0 -0
  44. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/LICENSE +0 -0
  45. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/Makefile +0 -0
  46. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/docs/benchmarks.md +0 -0
  47. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/docs/testing.md +0 -0
  48. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/examples/async_client.py +0 -0
  49. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/examples/sync_client.py +0 -0
  50. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/_artifact_evidence.py +0 -0
  51. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/_conformance_runtime.py +0 -0
  52. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/_conformance_setup.py +0 -0
  53. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/benchmark.py +0 -0
  54. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/bootstrap_test_site.py +0 -0
  55. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/scripts/validate_artifacts.sh +0 -0
  56. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/__init__.py +0 -0
  57. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_async_driver.py +0 -0
  58. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_async_httpx2.py +0 -0
  59. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_async_transport.py +0 -0
  60. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_capabilities.py +0 -0
  61. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_config.py +0 -0
  62. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_crud.py +0 -0
  63. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_driver.py +0 -0
  64. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_errors.py +0 -0
  65. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_execution.py +0 -0
  66. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_sentinel.py +0 -0
  67. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_sg_timezone.py +0 -0
  68. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_signatures.py +0 -0
  69. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/_transport.py +0 -0
  70. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/lib/__init__.py +0 -0
  71. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/lib/mockgun/__init__.py +0 -0
  72. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/lib/mockgun/_async.py +0 -0
  73. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/lib/mockgun/_mockgun.py +0 -0
  74. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/lib/sgtimezone.py +0 -0
  75. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/py.typed +0 -0
  76. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/src/shotgun_api3/shotgun.py +0 -0
  77. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/__init__.py +0 -0
  78. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/_git.py +0 -0
  79. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/_loopback.py +0 -0
  80. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/_pyright.py +0 -0
  81. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/_required_mode.py +0 -0
  82. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/_transports.py +0 -0
  83. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/__init__.py +0 -0
  84. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_auth_methods.py +0 -0
  85. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_crud.py +0 -0
  86. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_filters.py +0 -0
  87. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_schema.py +0 -0
  88. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/client/test_summarize_search.py +0 -0
  89. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/conftest.py +0 -0
  90. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/__init__.py +0 -0
  91. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/test_cookie_handler.py +0 -0
  92. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/files/test_downloads.py +0 -0
  93. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/batch.json +0 -0
  94. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/create.json +0 -0
  95. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/fault_bad_auth.json +0 -0
  96. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/following.json +0 -0
  97. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/get_session_token.json +0 -0
  98. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/info.json +0 -0
  99. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/nav_expand.json +0 -0
  100. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/preferences_read.json +0 -0
  101. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/read.json +0 -0
  102. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/schema_entity_read.json +0 -0
  103. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/schema_read.json +0 -0
  104. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/summarize.json +0 -0
  105. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/text_search.json +0 -0
  106. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/update_project_last_accessed.json +0 -0
  107. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/fixtures/work_schedule_read.json +0 -0
  108. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/__init__.py +0 -0
  109. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/conftest.py +0 -0
  110. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/test_mockgun_async.py +0 -0
  111. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/test_mockgun_crud.py +0 -0
  112. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/test_mockgun_find.py +0 -0
  113. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/test_mockgun_schema.py +0 -0
  114. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/lib/test_sgtimezone.py +0 -0
  115. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/live/__init__.py +0 -0
  116. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/live/conftest.py +0 -0
  117. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/live/test_async.py +0 -0
  118. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/live/test_roundtrip.py +0 -0
  119. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_datetimes.py +0 -0
  120. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_errors.py +0 -0
  121. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_examples.py +0 -0
  122. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_project_metadata.py +0 -0
  123. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/test_signature_parity.py +0 -0
  124. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/__init__.py +0 -0
  125. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_conformance_runtime.py +0 -0
  126. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_conformance_setup.py +0 -0
  127. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/tooling/test_required_mode.py +0 -0
  128. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/__init__.py +0 -0
  129. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_abort.py +0 -0
  130. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_async.py +0 -0
  131. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_async_driver.py +0 -0
  132. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_async_httpx2.py +0 -0
  133. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_async_prefetch.py +0 -0
  134. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_driver.py +0 -0
  135. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_prefetch.py +0 -0
  136. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_protocol.py +0 -0
  137. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_retry_policy.py +0 -0
  138. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_streaming.py +0 -0
  139. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_sync.py +0 -0
  140. {sg_python_api-0.1.1 → sg_python_api-0.1.2}/tests/transport/test_urllib3.py +0 -0
@@ -24,7 +24,7 @@ the *readiness check*.
24
24
  ## Supported scope
25
25
 
26
26
  The package provides the `shotgun_api3` import name and targets the documented synchronous API of
27
- Autodesk's Python client `3.10.2`, including its method signatures, return shapes, errors, filters,
27
+ Autodesk's Python client `3.10.3`, including its method signatures, return shapes, errors, filters,
28
28
  paging, schema, file, activity, navigation, and scheduling operations. It also provides the
29
29
  `shotgun_api3.lib.mockgun` and `shotgun_api3.lib.sgtimezone` modules and native async extensions.
30
30
 
@@ -112,7 +112,7 @@ operation repeats the check; the client never pages with an invalid size.
112
112
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
113
113
  | Download setup errors | Setup RPC faults keep their specific types. Setup or transfer HTTP failures and invalid download URLs raise `ShotgunFileDownloadError` with a generic message and no underlying exception details. Configuration and security failures keep their existing types. |
114
114
  | Multi-target thumbnail sharing | The client waits for source readiness before sharing and does not upload the source again. |
115
- | Legacy form uploads | A successful response from the legacy form-upload route is unsupported. Hosted direct and multipart routes are supported. |
115
+ | Legacy form uploads | Servers requiring legacy form uploads are unsupported. The client raises `ShotgunError` before any upload request; capability reads may occur. Hosted direct and multipart routes are supported. |
116
116
  | Datetime-shaped strings | Invalid values remain unchanged strings. On platforms without pre-1970 time conversion, valid pre-epoch values use the process standard offset without historical daylight-saving accuracy. |
117
117
  | Request diagnostics | Structured observers omit credentials and bodies. Application `httpx2` INFO logging can include signed URLs; set that logger to WARNING. |
118
118
  | User agent | The default includes an `sg-python-api` marker. `add_user_agent()` preserves it, `reset_user_agent()` restores the default, and assigning `sg.config.user_agents` replaces every entry. |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sg-python-api
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Python client for Autodesk Flow Production Tracking
5
5
  Project-URL: Documentation, https://github.com/dactylo/sg-python-api/tree/main/docs
6
6
  Project-URL: Homepage, https://github.com/dactylo/sg-python-api
@@ -44,9 +44,9 @@ This documentation uses SG for Flow Production Tracking, formerly named Shotgun
44
44
  for application tests.
45
45
 
46
46
  sg-python-api is an independent implementation of the documented API of Autodesk's Python client
47
- `3.10.2`. Some behavior differs on purpose, so validate your application's workflows against a test
48
- site before replacing its production client. The [migration guide](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/migration-guide.md) walks
49
- through the switch, and the [compatibility reference](https://github.com/dactylo/sg-python-api/blob/v0.1.1/COMPATIBILITY.md) lists the differences.
47
+ `3.10.3`. Some behavior differs on purpose, so validate your application's workflows against a test
48
+ site before replacing its production client. The [migration guide](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/migration-guide.md) walks
49
+ through the switch, and the [compatibility reference](https://github.com/dactylo/sg-python-api/blob/v0.1.2/COMPATIBILITY.md) lists the differences.
50
50
 
51
51
  ## Installation
52
52
 
@@ -55,7 +55,7 @@ requests to a remote site require HTTPS.
55
55
 
56
56
  `sg-python-api` and Autodesk's `shotgun-api3` both install the `shotgun_api3` package, so install
57
57
  exactly one of them in a Python environment. If the official client is already installed, follow
58
- the [migration steps](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/migration-guide.md#install-the-replacement) to replace it.
58
+ the [migration steps](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/migration-guide.md#install-the-replacement) to replace it.
59
59
 
60
60
  From a checkout, install into the Python environment that runs your application:
61
61
 
@@ -130,23 +130,23 @@ operation fails. Without the `async` extra, importing `AsyncShotgun` raises `Imp
130
130
 
131
131
  Share an `AsyncShotgun` only among tasks on one event loop, and cancel its work by cancelling the
132
132
  task. A cancelled write may already have reached the server, so check its outcome before repeating
133
- it. The [async reference](https://github.com/dactylo/sg-python-api/blob/v0.1.1/COMPATIBILITY.md#async-extension-surfaces) covers shutdown and
133
+ it. The [async reference](https://github.com/dactylo/sg-python-api/blob/v0.1.2/COMPATIBILITY.md#async-extension-surfaces) covers shutdown and
134
134
  cancellation in detail.
135
135
 
136
136
  ## Documentation
137
137
 
138
138
  | If you want to... | Read |
139
139
  | ----------------------------------------------------- | ---------------------------------------------------------------------------------- |
140
- | Replace Autodesk's client in an existing application | [Migration guide](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/migration-guide.md) |
141
- | Check what behaves differently from Autodesk's client | [Compatibility](https://github.com/dactylo/sg-python-api/blob/v0.1.1/COMPATIBILITY.md) |
142
- | Tune pooling and page prefetch, or observe requests | [Configuration extensions](https://github.com/dactylo/sg-python-api/blob/v0.1.1/COMPATIBILITY.md#configuration-and-observer-extensions) |
143
- | Confirm which client loads and run a smoke test | [Testing an installation](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/testing.md) |
144
- | Compare measured latency and transfer memory | [Benchmarks](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/benchmarks.md) |
145
- | See changes by version | [Changelog](https://github.com/dactylo/sg-python-api/blob/v0.1.1/CHANGELOG.md) |
140
+ | Replace Autodesk's client in an existing application | [Migration guide](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/migration-guide.md) |
141
+ | Check what behaves differently from Autodesk's client | [Compatibility](https://github.com/dactylo/sg-python-api/blob/v0.1.2/COMPATIBILITY.md) |
142
+ | Tune pooling and page prefetch, or observe requests | [Configuration extensions](https://github.com/dactylo/sg-python-api/blob/v0.1.2/COMPATIBILITY.md#configuration-and-observer-extensions) |
143
+ | Confirm which client loads and run a smoke test | [Testing an installation](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/testing.md) |
144
+ | Compare measured latency and transfer memory | [Benchmarks](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/benchmarks.md) |
145
+ | See changes by version | [Changelog](https://github.com/dactylo/sg-python-api/blob/v0.1.2/CHANGELOG.md) |
146
146
 
147
147
  ## Development
148
148
 
149
- See the [development guide](https://github.com/dactylo/sg-python-api/blob/v0.1.1/docs/development.md) for the required tools, CI, and dependency locks.
149
+ See the [development guide](https://github.com/dactylo/sg-python-api/blob/v0.1.2/docs/development.md) for the required tools, CI, and dependency locks.
150
150
  With those tools installed, run:
151
151
 
152
152
  ```sh
@@ -159,6 +159,6 @@ make check
159
159
 
160
160
  ## License
161
161
 
162
- sg-python-api is available under the [MIT License](https://github.com/dactylo/sg-python-api/blob/v0.1.1/LICENSE). It is an independent project and is
162
+ sg-python-api is available under the [MIT License](https://github.com/dactylo/sg-python-api/blob/v0.1.2/LICENSE). It is an independent project and is
163
163
  not affiliated with or endorsed by Autodesk. Flow Production Tracking is a product of Autodesk,
164
164
  Inc.
@@ -20,7 +20,7 @@ This documentation uses SG for Flow Production Tracking, formerly named Shotgun
20
20
  for application tests.
21
21
 
22
22
  sg-python-api is an independent implementation of the documented API of Autodesk's Python client
23
- `3.10.2`. Some behavior differs on purpose, so validate your application's workflows against a test
23
+ `3.10.3`. Some behavior differs on purpose, so validate your application's workflows against a test
24
24
  site before replacing its production client. The [migration guide](docs/migration-guide.md) walks
25
25
  through the switch, and the [compatibility reference](COMPATIBILITY.md) lists the differences.
26
26
 
@@ -119,7 +119,7 @@ invalidate the evidence. Both scripts need network access and a
119
119
 
120
120
  Run `scripts/run_conformance.sh` with the same `PATH` and with `SG_TEST_SITE`, `SG_TEST_SCRIPT`,
121
121
  `SG_TEST_KEY`, `SG_TEST_HUMAN_LOGIN`, and `SG_TEST_HUMAN_PASSWORD` set. It clones Autodesk's suite
122
- at `v3.10.2`, runs it against the validated wheel, and appends a tally to
122
+ at `v3.10.3`, runs it against the validated wheel, and appends a tally to
123
123
  `dist/conformance-results.md`.
124
124
 
125
125
  The configured human user must already exist and authenticate with a legacy login passphrase and
@@ -2,7 +2,7 @@
2
2
 
3
3
  This guide is for applications that use Autodesk's `shotgun_api3` client and want to switch to
4
4
  sg-python-api. sg-python-api keeps the `shotgun_api3` import name and targets the documented API of
5
- Autodesk's client `3.10.2`, so migration mainly concerns installation, network policy, and failure
5
+ Autodesk's client `3.10.3`, so migration mainly concerns installation, network policy, and failure
6
6
  handling. Work in your application's test environment first, so you can validate its actual queries
7
7
  and writes before changing a production deployment. For a new integration, start with the
8
8
  [README quick start](../README.md#quick-start) instead.
@@ -10,7 +10,7 @@ requires = [ "editables~=0.3", "hatch-fancy-pypi-readme>=25.1", "hatchling>=1.27
10
10
  # ==========================================================
11
11
  [project]
12
12
  name = "sg-python-api"
13
- version = "0.1.1"
13
+ version = "0.1.2"
14
14
  description = "Python client for Autodesk Flow Production Tracking"
15
15
  keywords = [ "api", "flow-production-tracking", "shotgrid", "shotgun", "shotgun-api3" ]
16
16
  license = "MIT"
@@ -138,6 +138,7 @@ max_supported_python = "3.15"
138
138
  [tool.pyright]
139
139
  pythonVersion = "3.11" # Keep in sync with tool.ruff.target-version
140
140
  typeCheckingMode = "strict"
141
+ exclude = [ "dist" ]
141
142
  extraPaths = [ ".", "src" ]
142
143
  executionEnvironments = [
143
144
  { root = "tests", reportPrivateUsage = "none" },
@@ -22,7 +22,7 @@ if TYPE_CHECKING:
22
22
  _ARTIFACT_ARGUMENT_COUNT = 6
23
23
  _COMMAND_ARGUMENT_COUNT = 3
24
24
  _DIRECT_DOC_PART_COUNT = 2
25
- _EXPECTED_VERSION = '0.1.1'
25
+ _EXPECTED_VERSION = '0.1.2'
26
26
  _REGULAR_MEMBER_TYPES = frozenset({tarfile.AREGTYPE, tarfile.REGTYPE})
27
27
  _ROOT_SOURCE_FILES = frozenset(
28
28
  {