sg-python-api 0.1.2__tar.gz → 0.2.1__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 (171) hide show
  1. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/PKG-INFO +21 -24
  2. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/README.md +15 -18
  3. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/pyproject.toml +10 -13
  4. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/__init__.py +4 -0
  5. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_async_client.py +347 -281
  6. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_async_driver.py +25 -55
  7. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_async_httpx2.py +92 -59
  8. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_async_transport.py +38 -3
  9. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_capabilities.py +4 -3
  10. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_client.py +296 -422
  11. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_config.py +245 -120
  12. sg_python_api-0.2.1/src/shotgun_api3/_connections.py +144 -0
  13. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_crud.py +25 -250
  14. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_driver.py +29 -54
  15. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_execution.py +1 -3
  16. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_files.py +193 -21
  17. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_methods.py +59 -411
  18. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_protocol.py +27 -53
  19. sg_python_api-0.2.1/src/shotgun_api3/_transport.py +576 -0
  20. sg_python_api-0.2.1/src/shotgun_api3/_version.py +8 -0
  21. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/__init__.py +29 -0
  22. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_activity.py +510 -0
  23. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_async_client.py +196 -0
  24. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_dates.py +164 -0
  25. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_errors.py +18 -0
  26. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_events.py +1052 -0
  27. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_follows.py +217 -0
  28. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_handlers.py +553 -0
  29. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_links.py +598 -0
  30. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_new_client.py +92 -0
  31. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_presets.py +492 -0
  32. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_query.py +2205 -0
  33. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_retirement.py +463 -0
  34. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_schema.py +172 -0
  35. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_schema_writes.py +425 -0
  36. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_search.py +378 -0
  37. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_server.py +169 -0
  38. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_sessions.py +206 -0
  39. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_site.py +150 -0
  40. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_site_data.py +584 -0
  41. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_storage.py +208 -0
  42. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_store.py +1559 -0
  43. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_summaries.py +965 -0
  44. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_sync_client.py +190 -0
  45. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_threads.py +226 -0
  46. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_thumbnails.py +146 -0
  47. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_transport.py +145 -0
  48. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_uploads.py +417 -0
  49. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/_wire.py +120 -0
  50. sg_python_api-0.2.1/src/shotgun_api3/lib/mockgun/mockgun.py +14 -0
  51. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/lib/sgtimezone.py +24 -1
  52. sg_python_api-0.1.2/COMPATIBILITY.md +0 -285
  53. sg_python_api-0.1.2/Makefile +0 -89
  54. sg_python_api-0.1.2/docs/benchmarks.md +0 -116
  55. sg_python_api-0.1.2/docs/development.md +0 -203
  56. sg_python_api-0.1.2/docs/migration-guide.md +0 -87
  57. sg_python_api-0.1.2/docs/testing.md +0 -119
  58. sg_python_api-0.1.2/examples/async_client.py +0 -116
  59. sg_python_api-0.1.2/examples/sync_client.py +0 -118
  60. sg_python_api-0.1.2/scripts/_artifact_evidence.py +0 -204
  61. sg_python_api-0.1.2/scripts/_conformance_runtime.py +0 -520
  62. sg_python_api-0.1.2/scripts/_conformance_setup.py +0 -532
  63. sg_python_api-0.1.2/scripts/_sdist_contract.py +0 -372
  64. sg_python_api-0.1.2/scripts/benchmark.py +0 -3302
  65. sg_python_api-0.1.2/scripts/bootstrap_test_site.py +0 -128
  66. sg_python_api-0.1.2/scripts/probe_wire.py +0 -2467
  67. sg_python_api-0.1.2/scripts/run_conformance.sh +0 -377
  68. sg_python_api-0.1.2/scripts/run_installed_tests.py +0 -524
  69. sg_python_api-0.1.2/scripts/validate_artifacts.sh +0 -344
  70. sg_python_api-0.1.2/src/shotgun_api3/_signatures.py +0 -53
  71. sg_python_api-0.1.2/src/shotgun_api3/_transport.py +0 -901
  72. sg_python_api-0.1.2/src/shotgun_api3/_version.py +0 -3
  73. sg_python_api-0.1.2/src/shotgun_api3/lib/mockgun/__init__.py +0 -16
  74. sg_python_api-0.1.2/src/shotgun_api3/lib/mockgun/_async.py +0 -315
  75. sg_python_api-0.1.2/src/shotgun_api3/lib/mockgun/_mockgun.py +0 -1666
  76. sg_python_api-0.1.2/tests/__init__.py +0 -0
  77. sg_python_api-0.1.2/tests/_git.py +0 -6
  78. sg_python_api-0.1.2/tests/_loopback.py +0 -25
  79. sg_python_api-0.1.2/tests/_pyright.py +0 -23
  80. sg_python_api-0.1.2/tests/_required_mode.py +0 -68
  81. sg_python_api-0.1.2/tests/_transports.py +0 -131
  82. sg_python_api-0.1.2/tests/client/__init__.py +0 -0
  83. sg_python_api-0.1.2/tests/client/test_activity.py +0 -509
  84. sg_python_api-0.1.2/tests/client/test_async.py +0 -2534
  85. sg_python_api-0.1.2/tests/client/test_auth_methods.py +0 -431
  86. sg_python_api-0.1.2/tests/client/test_crud.py +0 -1316
  87. sg_python_api-0.1.2/tests/client/test_filters.py +0 -262
  88. sg_python_api-0.1.2/tests/client/test_misc_methods.py +0 -827
  89. sg_python_api-0.1.2/tests/client/test_nav.py +0 -276
  90. sg_python_api-0.1.2/tests/client/test_schema.py +0 -388
  91. sg_python_api-0.1.2/tests/client/test_summarize_search.py +0 -380
  92. sg_python_api-0.1.2/tests/client/test_sync.py +0 -1787
  93. sg_python_api-0.1.2/tests/conftest.py +0 -124
  94. sg_python_api-0.1.2/tests/files/__init__.py +0 -0
  95. sg_python_api-0.1.2/tests/files/test_async.py +0 -2217
  96. sg_python_api-0.1.2/tests/files/test_cookie_handler.py +0 -221
  97. sg_python_api-0.1.2/tests/files/test_downloads.py +0 -993
  98. sg_python_api-0.1.2/tests/files/test_upload_routing.py +0 -65
  99. sg_python_api-0.1.2/tests/files/test_uploads.py +0 -1684
  100. sg_python_api-0.1.2/tests/fixtures/activity_stream_read.json +0 -40
  101. sg_python_api-0.1.2/tests/fixtures/batch.json +0 -52
  102. sg_python_api-0.1.2/tests/fixtures/create.json +0 -49
  103. sg_python_api-0.1.2/tests/fixtures/fault_bad_auth.json +0 -46
  104. sg_python_api-0.1.2/tests/fixtures/following.json +0 -38
  105. sg_python_api-0.1.2/tests/fixtures/get_session_token.json +0 -32
  106. sg_python_api-0.1.2/tests/fixtures/info.json +0 -27
  107. sg_python_api-0.1.2/tests/fixtures/nav_expand.json +0 -35
  108. sg_python_api-0.1.2/tests/fixtures/nav_search_entity.json +0 -42
  109. sg_python_api-0.1.2/tests/fixtures/nav_search_string.json +0 -39
  110. sg_python_api-0.1.2/tests/fixtures/note_thread_read.json +0 -35
  111. sg_python_api-0.1.2/tests/fixtures/preferences_read.json +0 -35
  112. sg_python_api-0.1.2/tests/fixtures/read.json +0 -46
  113. sg_python_api-0.1.2/tests/fixtures/schema_entity_read.json +0 -32
  114. sg_python_api-0.1.2/tests/fixtures/schema_read.json +0 -32
  115. sg_python_api-0.1.2/tests/fixtures/summarize.json +0 -45
  116. sg_python_api-0.1.2/tests/fixtures/text_search.json +0 -43
  117. sg_python_api-0.1.2/tests/fixtures/update_project_last_accessed.json +0 -36
  118. sg_python_api-0.1.2/tests/fixtures/user_subscriptions_read.json +0 -32
  119. sg_python_api-0.1.2/tests/fixtures/work_schedule_read.json +0 -36
  120. sg_python_api-0.1.2/tests/lib/__init__.py +0 -0
  121. sg_python_api-0.1.2/tests/lib/conftest.py +0 -151
  122. sg_python_api-0.1.2/tests/lib/test_mockgun_async.py +0 -252
  123. sg_python_api-0.1.2/tests/lib/test_mockgun_crud.py +0 -733
  124. sg_python_api-0.1.2/tests/lib/test_mockgun_find.py +0 -1357
  125. sg_python_api-0.1.2/tests/lib/test_mockgun_schema.py +0 -394
  126. sg_python_api-0.1.2/tests/lib/test_sgtimezone.py +0 -311
  127. sg_python_api-0.1.2/tests/live/__init__.py +0 -0
  128. sg_python_api-0.1.2/tests/live/conftest.py +0 -197
  129. sg_python_api-0.1.2/tests/live/test_async.py +0 -405
  130. sg_python_api-0.1.2/tests/live/test_methods.py +0 -306
  131. sg_python_api-0.1.2/tests/live/test_roundtrip.py +0 -176
  132. sg_python_api-0.1.2/tests/test_config.py +0 -1714
  133. sg_python_api-0.1.2/tests/test_datetimes.py +0 -303
  134. sg_python_api-0.1.2/tests/test_errors.py +0 -19
  135. sg_python_api-0.1.2/tests/test_examples.py +0 -362
  136. sg_python_api-0.1.2/tests/test_init.py +0 -311
  137. sg_python_api-0.1.2/tests/test_parity.py +0 -1610
  138. sg_python_api-0.1.2/tests/test_project_metadata.py +0 -34
  139. sg_python_api-0.1.2/tests/test_signature_parity.py +0 -232
  140. sg_python_api-0.1.2/tests/tooling/__init__.py +0 -0
  141. sg_python_api-0.1.2/tests/tooling/_wire_replay.py +0 -216
  142. sg_python_api-0.1.2/tests/tooling/test_artifact_evidence.py +0 -382
  143. sg_python_api-0.1.2/tests/tooling/test_benchmark.py +0 -4999
  144. sg_python_api-0.1.2/tests/tooling/test_conformance_runtime.py +0 -563
  145. sg_python_api-0.1.2/tests/tooling/test_conformance_setup.py +0 -348
  146. sg_python_api-0.1.2/tests/tooling/test_required_mode.py +0 -698
  147. sg_python_api-0.1.2/tests/tooling/test_run_conformance.py +0 -723
  148. sg_python_api-0.1.2/tests/tooling/test_run_installed_tests.py +0 -615
  149. sg_python_api-0.1.2/tests/tooling/test_validate_artifacts.py +0 -1171
  150. sg_python_api-0.1.2/tests/tooling/test_wire_fixtures.py +0 -2033
  151. sg_python_api-0.1.2/tests/transport/__init__.py +0 -0
  152. sg_python_api-0.1.2/tests/transport/test_abort.py +0 -406
  153. sg_python_api-0.1.2/tests/transport/test_async.py +0 -278
  154. sg_python_api-0.1.2/tests/transport/test_async_driver.py +0 -2379
  155. sg_python_api-0.1.2/tests/transport/test_async_httpx2.py +0 -1483
  156. sg_python_api-0.1.2/tests/transport/test_async_prefetch.py +0 -428
  157. sg_python_api-0.1.2/tests/transport/test_driver.py +0 -1761
  158. sg_python_api-0.1.2/tests/transport/test_prefetch.py +0 -1214
  159. sg_python_api-0.1.2/tests/transport/test_protocol.py +0 -640
  160. sg_python_api-0.1.2/tests/transport/test_retry_policy.py +0 -775
  161. sg_python_api-0.1.2/tests/transport/test_streaming.py +0 -604
  162. sg_python_api-0.1.2/tests/transport/test_sync.py +0 -301
  163. sg_python_api-0.1.2/tests/transport/test_urllib3.py +0 -336
  164. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/.gitignore +0 -0
  165. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/LICENSE +0 -0
  166. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_errors.py +0 -0
  167. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_sentinel.py +0 -0
  168. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/_sg_timezone.py +0 -0
  169. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/lib/__init__.py +0 -0
  170. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/py.typed +0 -0
  171. {sg_python_api-0.1.2 → sg_python_api-0.2.1}/src/shotgun_api3/shotgun.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sg-python-api
3
- Version: 0.1.2
3
+ Version: 0.2.1
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.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.
47
+ `3.10.5`. 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.2.1/docs/migration-guide.md) walks
49
+ through the switch, and the [compatibility reference](https://github.com/dactylo/sg-python-api/blob/v0.2.1/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.2/docs/migration-guide.md#install-the-replacement) to replace it.
58
+ the [migration steps](https://github.com/dactylo/sg-python-api/blob/v0.2.1/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
 
@@ -126,39 +126,36 @@ asyncio.run(main())
126
126
  ```
127
127
 
128
128
  The output matches the synchronous example. The `async with` block closes the client even when an
129
- operation fails. Without the `async` extra, importing `AsyncShotgun` raises `ImportError`.
130
-
131
- Share an `AsyncShotgun` only among tasks on one event loop, and cancel its work by cancelling the
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.2/COMPATIBILITY.md#async-extension-surfaces) covers shutdown and
134
- cancellation in detail.
129
+ operation fails. Share an `AsyncShotgun` only among tasks on one event loop. See the
130
+ [async reference](https://github.com/dactylo/sg-python-api/blob/v0.2.1/COMPATIBILITY.md#async-extension-surfaces) for lifecycle and cancellation
131
+ details.
135
132
 
136
133
  ## Documentation
137
134
 
138
- | If you want to... | Read |
139
- | ----------------------------------------------------- | ---------------------------------------------------------------------------------- |
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) |
135
+ | If you want to... | Read |
136
+ | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
137
+ | Replace Autodesk's client in an existing application | [Migration guide](https://github.com/dactylo/sg-python-api/blob/v0.2.1/docs/migration-guide.md) |
138
+ | Check what behaves differently from Autodesk's client | [Compatibility](https://github.com/dactylo/sg-python-api/blob/v0.2.1/COMPATIBILITY.md) |
139
+ | Tune pooling, TCP keepalive, or page prefetch, or observe requests | [Configuration extensions](https://github.com/dactylo/sg-python-api/blob/v0.2.1/COMPATIBILITY.md#configuration-and-observer-extensions) |
140
+ | Confirm which client loads and run a smoke test | [Testing an installation](https://github.com/dactylo/sg-python-api/blob/v0.2.1/docs/testing.md) |
141
+ | Compare measured latency and transfer memory | [Benchmarks](https://github.com/dactylo/sg-python-api/blob/v0.2.1/docs/benchmarks.md) |
142
+ | See changes by version | [Changelog](https://github.com/dactylo/sg-python-api/blob/v0.2.1/CHANGELOG.md) |
146
143
 
147
144
  ## Development
148
145
 
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.
146
+ See the [development guide](https://github.com/dactylo/sg-python-api/blob/v0.2.1/docs/development.md) for the required tools, CI, and dependency locks.
150
147
  With those tools installed, run:
151
148
 
152
149
  ```sh
153
150
  make setup
154
- make check
151
+ make check TEST_FLAGS="-m 'not live'"
155
152
  ```
156
153
 
157
- `make check` also runs the live-site tests, which create and delete records, whenever the
158
- `SG_TEST_*` variables described in the development guide are set.
154
+ See [live-site tests](https://github.com/dactylo/sg-python-api/blob/v0.2.1/docs/development.md#live-site-tests) to configure tests that create and
155
+ retire records on a disposable site.
159
156
 
160
157
  ## License
161
158
 
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
159
+ sg-python-api is available under the [MIT License](https://github.com/dactylo/sg-python-api/blob/v0.2.1/LICENSE). It is an independent project and is
163
160
  not affiliated with or endorsed by Autodesk. Flow Production Tracking is a product of Autodesk,
164
161
  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.3`. Some behavior differs on purpose, so validate your application's workflows against a test
23
+ `3.10.5`. 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
 
@@ -102,23 +102,20 @@ asyncio.run(main())
102
102
  ```
103
103
 
104
104
  The output matches the synchronous example. The `async with` block closes the client even when an
105
- operation fails. Without the `async` extra, importing `AsyncShotgun` raises `ImportError`.
106
-
107
- Share an `AsyncShotgun` only among tasks on one event loop, and cancel its work by cancelling the
108
- task. A cancelled write may already have reached the server, so check its outcome before repeating
109
- it. The [async reference](COMPATIBILITY.md#async-extension-surfaces) covers shutdown and
110
- cancellation in detail.
105
+ operation fails. Share an `AsyncShotgun` only among tasks on one event loop. See the
106
+ [async reference](COMPATIBILITY.md#async-extension-surfaces) for lifecycle and cancellation
107
+ details.
111
108
 
112
109
  ## Documentation
113
110
 
114
- | If you want to... | Read |
115
- | ----------------------------------------------------- | ---------------------------------------------------------------------------------- |
116
- | Replace Autodesk's client in an existing application | [Migration guide](docs/migration-guide.md) |
117
- | Check what behaves differently from Autodesk's client | [Compatibility](COMPATIBILITY.md) |
118
- | Tune pooling and page prefetch, or observe requests | [Configuration extensions](COMPATIBILITY.md#configuration-and-observer-extensions) |
119
- | Confirm which client loads and run a smoke test | [Testing an installation](docs/testing.md) |
120
- | Compare measured latency and transfer memory | [Benchmarks](docs/benchmarks.md) |
121
- | See changes by version | [Changelog](CHANGELOG.md) |
111
+ | If you want to... | Read |
112
+ | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
113
+ | Replace Autodesk's client in an existing application | [Migration guide](docs/migration-guide.md) |
114
+ | Check what behaves differently from Autodesk's client | [Compatibility](COMPATIBILITY.md) |
115
+ | Tune pooling, TCP keepalive, or page prefetch, or observe requests | [Configuration extensions](COMPATIBILITY.md#configuration-and-observer-extensions) |
116
+ | Confirm which client loads and run a smoke test | [Testing an installation](docs/testing.md) |
117
+ | Compare measured latency and transfer memory | [Benchmarks](docs/benchmarks.md) |
118
+ | See changes by version | [Changelog](CHANGELOG.md) |
122
119
 
123
120
  ## Development
124
121
 
@@ -127,11 +124,11 @@ With those tools installed, run:
127
124
 
128
125
  ```sh
129
126
  make setup
130
- make check
127
+ make check TEST_FLAGS="-m 'not live'"
131
128
  ```
132
129
 
133
- `make check` also runs the live-site tests, which create and delete records, whenever the
134
- `SG_TEST_*` variables described in the development guide are set.
130
+ See [live-site tests](docs/development.md#live-site-tests) to configure tests that create and
131
+ retire records on a disposable site.
135
132
 
136
133
  ## License
137
134
 
@@ -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.2"
13
+ version = "0.2.1"
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"
@@ -50,6 +50,7 @@ dev = [
50
50
  "pyproject-fmt",
51
51
  "pyright",
52
52
  "ruff",
53
+ "zizmor",
53
54
  { include-group = "test" },
54
55
  ]
55
56
  test = [
@@ -67,13 +68,7 @@ metadata.hooks.fancy-pypi-readme.fragments = [ { path = "README.md" } ]
67
68
  build.targets.wheel.packages = [ "src/shotgun_api3" ]
68
69
  build.targets.sdist.include = [
69
70
  "/README.md",
70
- "/COMPATIBILITY.md",
71
- "/docs/*.md",
72
- "/examples/**",
73
- "/Makefile",
74
- "/scripts/**",
75
- "/src/**",
76
- "/tests/**",
71
+ "/src",
77
72
  ]
78
73
 
79
74
  # Keep checkout links relative; package links target this release.
@@ -114,11 +109,11 @@ lint.ignore = [
114
109
  # Command-line scripts and examples intentionally print output.
115
110
  lint.per-file-ignores."examples/**/*.py" = [ "T201" ]
116
111
  lint.per-file-ignores."scripts/**/*.py" = [ "T201" ]
117
- # Repeated same-file collaboration follows module-boundary privacy.
118
- lint.per-file-ignores."scripts/benchmark.py" = [ "SLF001" ]
119
- lint.per-file-ignores."src/shotgun_api3/_async_client.py" = [ "SLF001" ]
120
- lint.per-file-ignores."src/shotgun_api3/_config.py" = [ "SLF001" ]
121
- lint.per-file-ignores."src/shotgun_api3/_transport.py" = [ "SLF001" ]
112
+ # Public signatures mirror shotgun_api3
113
+ lint.per-file-ignores."src/shotgun_api3/_async_client.py" = [ "PLR0913", "PLR0917" ]
114
+ lint.per-file-ignores."src/shotgun_api3/_client.py" = [ "PLR0913", "PLR0917" ]
115
+ lint.per-file-ignores."src/shotgun_api3/lib/mockgun/_async_client.py" = [ "PLR0913", "PLR0917" ]
116
+ lint.per-file-ignores."src/shotgun_api3/lib/mockgun/_sync_client.py" = [ "PLR0913", "PLR0917" ]
122
117
  lint.per-file-ignores."tests/**/*.py" = [
123
118
  "D", # No docstrings required in tests
124
119
  "PLR2004", # Allow magic values in tests
@@ -137,6 +132,8 @@ max_supported_python = "3.15"
137
132
  # ==========================================================
138
133
  [tool.pyright]
139
134
  pythonVersion = "3.11" # Keep in sync with tool.ruff.target-version
135
+ venv = ".venv" # Created by make setup
136
+ venvPath = "."
140
137
  typeCheckingMode = "strict"
141
138
  exclude = [ "dist" ]
142
139
  extraPaths = [ ".", "src" ]
@@ -4,6 +4,10 @@ Import `Shotgun` directly from this package. Import `AsyncShotgun` explicitly
4
4
  after installing the `async` extra; it is loaded lazily and excluded from star
5
5
  imports.
6
6
 
7
+ Import initializes the compatibility logger and reads
8
+ `SHOTGUN_API_DISABLE_ENTITY_OPTIMIZATION`; the value `1` disables entity-link
9
+ optimization.
10
+
7
11
  Close synchronous clients with `close()`. Use asynchronous clients through an
8
12
  async context manager or call `await close()`. The public `sg_timezone` object
9
13
  is the shared timezone configuration used for datetime conversion.