sg-python-api 0.1.1__tar.gz → 0.2.0__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 (167) hide show
  1. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/PKG-INFO +21 -24
  2. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/README.md +15 -18
  3. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/pyproject.toml +11 -13
  4. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/__init__.py +4 -0
  5. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_async_client.py +404 -316
  6. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_async_driver.py +25 -55
  7. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_async_httpx2.py +92 -59
  8. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_async_transport.py +38 -3
  9. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_capabilities.py +4 -3
  10. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_client.py +354 -462
  11. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_config.py +245 -120
  12. sg_python_api-0.2.0/src/shotgun_api3/_connections.py +144 -0
  13. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_crud.py +25 -250
  14. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_driver.py +29 -54
  15. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_execution.py +1 -3
  16. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_files.py +215 -123
  17. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_methods.py +153 -412
  18. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_protocol.py +27 -146
  19. sg_python_api-0.2.0/src/shotgun_api3/_transport.py +576 -0
  20. sg_python_api-0.2.0/src/shotgun_api3/_version.py +8 -0
  21. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/__init__.py +29 -0
  22. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_activity.py +510 -0
  23. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_async_client.py +196 -0
  24. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_dates.py +164 -0
  25. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_errors.py +18 -0
  26. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_events.py +1031 -0
  27. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_follows.py +217 -0
  28. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_handlers.py +558 -0
  29. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_links.py +440 -0
  30. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_new_client.py +92 -0
  31. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_presets.py +492 -0
  32. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_query.py +2163 -0
  33. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_retirement.py +368 -0
  34. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_schema.py +172 -0
  35. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_schema_writes.py +425 -0
  36. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_search.py +378 -0
  37. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_server.py +169 -0
  38. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_sessions.py +206 -0
  39. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_site.py +150 -0
  40. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_site_data.py +584 -0
  41. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_storage.py +208 -0
  42. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_store.py +1446 -0
  43. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_summaries.py +964 -0
  44. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_sync_client.py +190 -0
  45. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_threads.py +226 -0
  46. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_thumbnails.py +146 -0
  47. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_transport.py +145 -0
  48. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_uploads.py +417 -0
  49. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/_wire.py +120 -0
  50. sg_python_api-0.2.0/src/shotgun_api3/lib/mockgun/mockgun.py +14 -0
  51. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/lib/sgtimezone.py +24 -1
  52. sg_python_api-0.1.1/COMPATIBILITY.md +0 -285
  53. sg_python_api-0.1.1/Makefile +0 -89
  54. sg_python_api-0.1.1/docs/benchmarks.md +0 -116
  55. sg_python_api-0.1.1/docs/development.md +0 -203
  56. sg_python_api-0.1.1/docs/migration-guide.md +0 -87
  57. sg_python_api-0.1.1/docs/testing.md +0 -119
  58. sg_python_api-0.1.1/examples/async_client.py +0 -116
  59. sg_python_api-0.1.1/examples/sync_client.py +0 -118
  60. sg_python_api-0.1.1/scripts/_artifact_evidence.py +0 -204
  61. sg_python_api-0.1.1/scripts/_conformance_runtime.py +0 -520
  62. sg_python_api-0.1.1/scripts/_conformance_setup.py +0 -532
  63. sg_python_api-0.1.1/scripts/_sdist_contract.py +0 -372
  64. sg_python_api-0.1.1/scripts/benchmark.py +0 -3302
  65. sg_python_api-0.1.1/scripts/bootstrap_test_site.py +0 -128
  66. sg_python_api-0.1.1/scripts/probe_wire.py +0 -2167
  67. sg_python_api-0.1.1/scripts/run_conformance.sh +0 -377
  68. sg_python_api-0.1.1/scripts/run_installed_tests.py +0 -524
  69. sg_python_api-0.1.1/scripts/validate_artifacts.sh +0 -344
  70. sg_python_api-0.1.1/src/shotgun_api3/_signatures.py +0 -53
  71. sg_python_api-0.1.1/src/shotgun_api3/_transport.py +0 -901
  72. sg_python_api-0.1.1/src/shotgun_api3/_version.py +0 -3
  73. sg_python_api-0.1.1/src/shotgun_api3/lib/mockgun/__init__.py +0 -16
  74. sg_python_api-0.1.1/src/shotgun_api3/lib/mockgun/_async.py +0 -315
  75. sg_python_api-0.1.1/src/shotgun_api3/lib/mockgun/_mockgun.py +0 -1666
  76. sg_python_api-0.1.1/tests/__init__.py +0 -0
  77. sg_python_api-0.1.1/tests/_git.py +0 -6
  78. sg_python_api-0.1.1/tests/_loopback.py +0 -25
  79. sg_python_api-0.1.1/tests/_pyright.py +0 -23
  80. sg_python_api-0.1.1/tests/_required_mode.py +0 -68
  81. sg_python_api-0.1.1/tests/_transports.py +0 -131
  82. sg_python_api-0.1.1/tests/client/__init__.py +0 -0
  83. sg_python_api-0.1.1/tests/client/test_activity.py +0 -509
  84. sg_python_api-0.1.1/tests/client/test_async.py +0 -2534
  85. sg_python_api-0.1.1/tests/client/test_auth_methods.py +0 -431
  86. sg_python_api-0.1.1/tests/client/test_crud.py +0 -1316
  87. sg_python_api-0.1.1/tests/client/test_filters.py +0 -262
  88. sg_python_api-0.1.1/tests/client/test_misc_methods.py +0 -677
  89. sg_python_api-0.1.1/tests/client/test_nav.py +0 -276
  90. sg_python_api-0.1.1/tests/client/test_schema.py +0 -388
  91. sg_python_api-0.1.1/tests/client/test_summarize_search.py +0 -380
  92. sg_python_api-0.1.1/tests/client/test_sync.py +0 -1787
  93. sg_python_api-0.1.1/tests/conftest.py +0 -124
  94. sg_python_api-0.1.1/tests/files/__init__.py +0 -0
  95. sg_python_api-0.1.1/tests/files/test_async.py +0 -2257
  96. sg_python_api-0.1.1/tests/files/test_cookie_handler.py +0 -221
  97. sg_python_api-0.1.1/tests/files/test_downloads.py +0 -993
  98. sg_python_api-0.1.1/tests/files/test_multipart.py +0 -146
  99. sg_python_api-0.1.1/tests/files/test_upload_routing.py +0 -66
  100. sg_python_api-0.1.1/tests/files/test_uploads.py +0 -1798
  101. sg_python_api-0.1.1/tests/fixtures/activity_stream_read.json +0 -40
  102. sg_python_api-0.1.1/tests/fixtures/batch.json +0 -52
  103. sg_python_api-0.1.1/tests/fixtures/create.json +0 -49
  104. sg_python_api-0.1.1/tests/fixtures/fault_bad_auth.json +0 -46
  105. sg_python_api-0.1.1/tests/fixtures/following.json +0 -38
  106. sg_python_api-0.1.1/tests/fixtures/get_session_token.json +0 -32
  107. sg_python_api-0.1.1/tests/fixtures/info.json +0 -27
  108. sg_python_api-0.1.1/tests/fixtures/nav_expand.json +0 -35
  109. sg_python_api-0.1.1/tests/fixtures/preferences_read.json +0 -35
  110. sg_python_api-0.1.1/tests/fixtures/read.json +0 -46
  111. sg_python_api-0.1.1/tests/fixtures/schema_entity_read.json +0 -32
  112. sg_python_api-0.1.1/tests/fixtures/schema_read.json +0 -32
  113. sg_python_api-0.1.1/tests/fixtures/summarize.json +0 -45
  114. sg_python_api-0.1.1/tests/fixtures/text_search.json +0 -43
  115. sg_python_api-0.1.1/tests/fixtures/update_project_last_accessed.json +0 -36
  116. sg_python_api-0.1.1/tests/fixtures/work_schedule_read.json +0 -36
  117. sg_python_api-0.1.1/tests/lib/__init__.py +0 -0
  118. sg_python_api-0.1.1/tests/lib/conftest.py +0 -151
  119. sg_python_api-0.1.1/tests/lib/test_mockgun_async.py +0 -252
  120. sg_python_api-0.1.1/tests/lib/test_mockgun_crud.py +0 -733
  121. sg_python_api-0.1.1/tests/lib/test_mockgun_find.py +0 -1357
  122. sg_python_api-0.1.1/tests/lib/test_mockgun_schema.py +0 -394
  123. sg_python_api-0.1.1/tests/lib/test_sgtimezone.py +0 -311
  124. sg_python_api-0.1.1/tests/live/__init__.py +0 -0
  125. sg_python_api-0.1.1/tests/live/conftest.py +0 -197
  126. sg_python_api-0.1.1/tests/live/test_async.py +0 -405
  127. sg_python_api-0.1.1/tests/live/test_roundtrip.py +0 -176
  128. sg_python_api-0.1.1/tests/test_config.py +0 -1714
  129. sg_python_api-0.1.1/tests/test_datetimes.py +0 -303
  130. sg_python_api-0.1.1/tests/test_errors.py +0 -19
  131. sg_python_api-0.1.1/tests/test_examples.py +0 -362
  132. sg_python_api-0.1.1/tests/test_init.py +0 -311
  133. sg_python_api-0.1.1/tests/test_parity.py +0 -1400
  134. sg_python_api-0.1.1/tests/test_project_metadata.py +0 -34
  135. sg_python_api-0.1.1/tests/test_signature_parity.py +0 -232
  136. sg_python_api-0.1.1/tests/tooling/__init__.py +0 -0
  137. sg_python_api-0.1.1/tests/tooling/_wire_replay.py +0 -161
  138. sg_python_api-0.1.1/tests/tooling/test_artifact_evidence.py +0 -382
  139. sg_python_api-0.1.1/tests/tooling/test_benchmark.py +0 -4999
  140. sg_python_api-0.1.1/tests/tooling/test_conformance_runtime.py +0 -563
  141. sg_python_api-0.1.1/tests/tooling/test_conformance_setup.py +0 -348
  142. sg_python_api-0.1.1/tests/tooling/test_required_mode.py +0 -698
  143. sg_python_api-0.1.1/tests/tooling/test_run_conformance.py +0 -723
  144. sg_python_api-0.1.1/tests/tooling/test_run_installed_tests.py +0 -615
  145. sg_python_api-0.1.1/tests/tooling/test_validate_artifacts.py +0 -1171
  146. sg_python_api-0.1.1/tests/tooling/test_wire_fixtures.py +0 -1539
  147. sg_python_api-0.1.1/tests/transport/__init__.py +0 -0
  148. sg_python_api-0.1.1/tests/transport/test_abort.py +0 -406
  149. sg_python_api-0.1.1/tests/transport/test_async.py +0 -278
  150. sg_python_api-0.1.1/tests/transport/test_async_driver.py +0 -2379
  151. sg_python_api-0.1.1/tests/transport/test_async_httpx2.py +0 -1483
  152. sg_python_api-0.1.1/tests/transport/test_async_prefetch.py +0 -428
  153. sg_python_api-0.1.1/tests/transport/test_driver.py +0 -1761
  154. sg_python_api-0.1.1/tests/transport/test_prefetch.py +0 -1214
  155. sg_python_api-0.1.1/tests/transport/test_protocol.py +0 -640
  156. sg_python_api-0.1.1/tests/transport/test_retry_policy.py +0 -775
  157. sg_python_api-0.1.1/tests/transport/test_streaming.py +0 -604
  158. sg_python_api-0.1.1/tests/transport/test_sync.py +0 -301
  159. sg_python_api-0.1.1/tests/transport/test_urllib3.py +0 -336
  160. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/.gitignore +0 -0
  161. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/LICENSE +0 -0
  162. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_errors.py +0 -0
  163. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_sentinel.py +0 -0
  164. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/_sg_timezone.py +0 -0
  165. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/lib/__init__.py +0 -0
  166. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/src/shotgun_api3/py.typed +0 -0
  167. {sg_python_api-0.1.1 → sg_python_api-0.2.0}/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.1
3
+ Version: 0.2.0
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.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.0/docs/migration-guide.md) walks
49
+ through the switch, and the [compatibility reference](https://github.com/dactylo/sg-python-api/blob/v0.2.0/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.2.0/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.1/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.0/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.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) |
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.0/docs/migration-guide.md) |
138
+ | Check what behaves differently from Autodesk's client | [Compatibility](https://github.com/dactylo/sg-python-api/blob/v0.2.0/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.0/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.0/docs/testing.md) |
141
+ | Compare measured latency and transfer memory | [Benchmarks](https://github.com/dactylo/sg-python-api/blob/v0.2.0/docs/benchmarks.md) |
142
+ | See changes by version | [Changelog](https://github.com/dactylo/sg-python-api/blob/v0.2.0/CHANGELOG.md) |
146
143
 
147
144
  ## Development
148
145
 
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.
146
+ See the [development guide](https://github.com/dactylo/sg-python-api/blob/v0.2.0/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.0/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.1/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.0/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.2`. 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.1"
13
+ version = "0.2.0"
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,7 +132,10 @@ 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"
138
+ exclude = [ "dist" ]
141
139
  extraPaths = [ ".", "src" ]
142
140
  executionEnvironments = [
143
141
  { root = "tests", reportPrivateUsage = "none" },
@@ -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.