Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
ac80a3b
Client generated from 7f3bc6d
chahibi Jul 25, 2025
a21b3c7
Add data plane SDK to CI
chahibi Jul 25, 2025
fe7fec0
Update with ec43d19
chahibi Jul 25, 2025
70cdf6b
Changelog
chahibi Jul 25, 2025
a24da69
docstring fixes
chahibi Jul 25, 2025
4c226f0
CSpell
chahibi Jul 26, 2025
7df2e20
Typo fixes
chahibi Jul 26, 2025
9c073a1
Misc CI fixes
chahibi Jul 26, 2025
5b58a0b
Update tsp-location.yaml
chahibi Jul 26, 2025
e8500b6
Docstring and cspell fixes
chahibi Jul 26, 2025
9367252
Merge branch 'Azure:main' into mpcpro-pup
chahibi Jul 29, 2025
74d4ed9
Use latest typespec
chahibi Jul 29, 2025
51074d6
Use latest typespec
chahibi Jul 29, 2025
b2a6f6c
Use latest typespec
chahibi Jul 29, 2025
ad9cb2c
Oops wrong folder
chahibi Jul 29, 2025
e819af0
Manual fix
chahibi Jul 29, 2025
d48ba39
Revert "Manual fix"
chahibi Jul 29, 2025
26fad9e
Reapply "Manual fix"
chahibi Jul 29, 2025
2c82fb7
Docs fix
chahibi Jul 29, 2025
a68548a
Spelling
chahibi Jul 29, 2025
499b96c
docs fixes
chahibi Jul 29, 2025
bb662a6
Broken links
chahibi Jul 29, 2025
126cdb9
too-many-statements, too-many-locals, too-many-branches suppressions
chahibi Jul 29, 2025
1b01761
CSpell
chahibi Jul 29, 2025
b84c31b
Supress copyright warning
chahibi Jul 29, 2025
f60eb4c
Link verification checks
chahibi Jul 29, 2025
f7f577b
Working Notebook
chahibi Aug 4, 2025
33f3808
Update client
chahibi Aug 7, 2025
9a1bc94
Update image response model
chahibi Aug 8, 2025
e72842d
Merge branch 'Azure:main' into mpcpro-pup
chahibi Aug 11, 2025
b4f0821
Client update
chahibi Aug 11, 2025
8dad6f7
Update client
chahibi Aug 11, 2025
db5e79d
Revert
chahibi Aug 11, 2025
8de3d7d
Client update
chahibi Aug 11, 2025
820616d
Delete
chahibi Aug 11, 2025
2e0020f
Remove file in tests folder
chahibi Aug 11, 2025
49d980c
Reset
chahibi Aug 11, 2025
49819f5
Mypy error
chahibi Aug 11, 2025
a9f3503
Wheel fix
chahibi Aug 11, 2025
1d14df1
mypy error
chahibi Aug 12, 2025
f761161
Merge branch 'Azure:main' into mpcpro-pup
chahibi Aug 21, 2025
357fb44
Use custom clients
chahibi Aug 21, 2025
bcc9bf6
Address SDK review comments
chahibi Sep 9, 2025
ea0b9f6
Merge branch 'Azure:main' into mpcpro-pup
chahibi Sep 23, 2025
3406acb
Merge branch 'Azure:main' into mpcpro-pup
chahibi Sep 23, 2025
2cb70fd
Fix URLs
chahibi Sep 25, 2025
21a6139
Delete generated
chahibi Sep 25, 2025
4cabb52
Typespec commit update
chahibi Sep 25, 2025
d1e741b
Update
chahibi Oct 1, 2025
3c6389a
b8
chahibi Oct 2, 2025
fe05efc
b8
chahibi Oct 3, 2025
4738f13
1.0.0b9
chahibi Oct 3, 2025
dcdea57
b11
chahibi Oct 3, 2025
12cfbf9
Build error
chahibi Oct 3, 2025
e61b3b6
Address pipeline errors
chahibi Oct 3, 2025
ed05bac
Merge branch 'Azure:main' into mpcpro-pup
chahibi Oct 3, 2025
8ef8d4f
Merge branch 'mpcpro-pup' of https://github.com/chahibi/azure-sdk-for…
chahibi Oct 3, 2025
c827c23
b13
chahibi Oct 3, 2025
ae2daa1
Fix change log
chahibi Oct 3, 2025
82cfa60
Suppressions
chahibi Oct 3, 2025
850d7c5
Fix PyLint errors
chahibi Oct 3, 2025
3395cd4
Merge branch 'Azure:main' into mpcpro-pup
chahibi Oct 6, 2025
8f15e89
Auto-generated
chahibi Oct 9, 2025
7c2d6a6
PyLint fixes
chahibi Oct 9, 2025
1c6f798
Revert "PyLint fixes"
chahibi Oct 9, 2025
c1bc017
Merge branch 'mpcpro-pup' of https://github.com/chahibi/azure-sdk-for…
chahibi Oct 9, 2025
33c67ed
Auto-gen after using options classes
chahibi Oct 9, 2025
d49d473
PyLint manual touch-ups
chahibi Oct 9, 2025
9e79a7a
Docs typo
chahibi Oct 10, 2025
7a637b0
Remove -Client from SharedAccessSignatureClient
chahibi Oct 10, 2025
c7fd43f
ingestion -> ingestion_management
chahibi Oct 12, 2025
5a4540d
Unused import
chahibi Oct 12, 2025
8410508
No options classes
chahibi Oct 13, 2025
34a1bcc
API view updates
chahibi Oct 13, 2025
49aed8e
Add suppressions
chahibi Oct 13, 2025
bea4b51
update
chahibi Oct 13, 2025
0bb74cd
update
chahibi Oct 13, 2025
ba52271
Add properties to geojson
chahibi Oct 13, 2025
b8eeaa3
Add properties to geojson
chahibi Oct 14, 2025
cf6e08e
Update
chahibi Oct 14, 2025
66e3add
Fix pylint error
chahibi Oct 15, 2025
bec54c0
Fix pylint error
chahibi Oct 15, 2025
296c3bf
Delete generated samples
chahibi Oct 15, 2025
feebd80
Handwritten samples
chahibi Oct 15, 2025
f7c38ab
Unit test for SAS
chahibi Oct 16, 2025
4798c6d
Map legends and single STAC item
chahibi Oct 16, 2025
38f74a0
STAC item tiler
chahibi Oct 16, 2025
e5a585f
Mosaics tests
chahibi Oct 16, 2025
e6efe4b
Tests for ingestion management
chahibi Oct 17, 2025
23a965e
Use naip
chahibi Oct 17, 2025
f54e083
Update with NAIP and save artifacts locally
chahibi Oct 17, 2025
6edce1e
Do recording
chahibi Oct 18, 2025
e6fcdf5
Recording
chahibi Oct 18, 2025
af12af8
Rename
chahibi Oct 18, 2025
e58ad62
Refresh recording
chahibi Oct 18, 2025
829f29e
match tests env vars names
chahibi Oct 18, 2025
0333031
match tests env vars names
chahibi Oct 18, 2025
de987bd
Fresh recordings
chahibi Oct 18, 2025
aa2ac21
new cordings
chahibi Oct 18, 2025
4456884
100% live test pass rate
chahibi Oct 21, 2025
a0761f7
Expand samples coverage
chahibi Oct 21, 2025
a048161
Samplesfixes
chahibi Oct 21, 2025
4e990cd
Fix stac item
chahibi Oct 21, 2025
63f15ea
Update with new stac item
chahibi Oct 22, 2025
83265ec
Fix static image creation
chahibi Oct 22, 2025
0e04483
Add missing tests
chahibi Oct 22, 2025
cab5659
Align tests with the samples
chahibi Oct 22, 2025
8b8d30a
All live tests passing
chahibi Oct 22, 2025
813c394
misc fixes for playback
chahibi Oct 22, 2025
80d7998
96% playback success rate
chahibi Oct 22, 2025
b382653
100% pass with partial recording
chahibi Oct 22, 2025
2ecbaef
100% test coverage
chahibi Oct 23, 2025
f7b7c1b
Unit test cspell
chahibi Oct 23, 2025
9af1d26
Remove dependency on tox
chahibi Oct 23, 2025
a99b5a5
Default value for collection_id
chahibi Oct 23, 2025
ec669aa
None collection-id
chahibi Oct 24, 2025
e59b935
Use create_client
chahibi Oct 24, 2025
070809a
Merge branch 'Azure:main' into mpcpro-pup
chahibi Oct 26, 2025
45553f2
New recordings
chahibi Oct 26, 2025
28a0b26
New recordings
chahibi Oct 26, 2025
5992389
Fix Python 3.10 error
chahibi Oct 26, 2025
eb29e57
Fix for 3.9 and 3.10
chahibi Oct 26, 2025
294fcd3
Fresh recordings
chahibi Oct 27, 2025
46a9a87
Fresh recordings
chahibi Oct 28, 2025
314daaa
Fix sanitization issue
chahibi Oct 28, 2025
1fd0c93
Update client.tsp
chahibi Oct 28, 2025
0a1c740
Formatting
chahibi Oct 28, 2025
1bea34f
Copy paste error
chahibi Oct 28, 2025
fc84cd1
Formatting
chahibi Oct 28, 2025
d17bca5
Test case updates after signature changes
chahibi Oct 29, 2025
0685a39
More fixes
chahibi Oct 29, 2025
f234c52
All tests passing
chahibi Oct 29, 2025
2e2f736
Passing recordings
chahibi Oct 29, 2025
dce6aa7
CSpell fixes
chahibi Oct 29, 2025
6266d58
Mypy issue
chahibi Oct 29, 2025
94a2b79
client renames
chahibi Oct 29, 2025
3f3532e
Merge branch 'Azure:main' into mpcpro-pup
chahibi Oct 29, 2025
c9e23b0
Merge branch 'mpcpro-pup' of https://github.com/chahibi/azure-sdk-for…
chahibi Oct 29, 2025
f0004db
Revert
chahibi Oct 30, 2025
ac1ff89
Merge branch 'Azure:main' into mpcpro-pup
chahibi Oct 30, 2025
b85234f
Merge branch 'mpcpro-pup' of https://github.com/chahibi/azure-sdk-for…
chahibi Oct 30, 2025
f8492c6
Fix sphinx issue manually
chahibi Oct 30, 2025
ec2cfcd
Fix datetime format
chahibi Oct 30, 2025
29b1e82
Just want to trigger a new CI run
chahibi Oct 30, 2025
29557d0
API view
chahibi Oct 30, 2025
a7695a8
Experiment to workaround pypy issue
chahibi Oct 30, 2025
eab910a
Revert "Experiment to workaround pypy issue"
chahibi Oct 30, 2025
4c82093
Workaround for Python 3.9 pypy
chahibi Oct 30, 2025
47f8c49
Update client.tsp
chahibi Oct 30, 2025
375d598
Workaround
chahibi Oct 30, 2025
c120adf
Try workaround
chahibi Oct 30, 2025
a4dde78
Remove
chahibi Oct 30, 2025
f50d638
Address review comments
chahibi Nov 3, 2025
81da615
Change log date
chahibi Nov 3, 2025
0ed8b0f
CSpell
chahibi Nov 3, 2025
3eae8b7
Recordings
chahibi Nov 3, 2025
9284ea7
Async test fixes
chahibi Nov 3, 2025
3e99f5a
Fixes
chahibi Nov 3, 2025
5db3a80
200 recordings success
chahibi Nov 3, 2025
966ab07
CI/CD fixes
chahibi Nov 3, 2025
4bb8bbc
Migrate assets out of repo
chahibi Nov 3, 2025
84fb738
Remove sleeps
chahibi Nov 3, 2025
1b882d5
Address review comments
chahibi Nov 4, 2025
6cdf33b
Actually it's reliable
chahibi Nov 4, 2025
43dde7b
Code owners
chahibi Nov 4, 2025
784a22e
Avoid chained awaits
chahibi Nov 4, 2025
7640bdb
codeowners Lint
chahibi Nov 4, 2025
57a1749
Black
chahibi Nov 4, 2025
2e12a34
Merge branch 'Azure:main' into mpcpro-pup
chahibi Nov 4, 2025
c0fd0c0
Address review comments
chahibi Nov 4, 2025
382b21e
Remove unnecessary dependencies
chahibi Nov 4, 2025
8fbb9ad
Merge branch 'Azure:main' into mpcpro-pup
chahibi Nov 4, 2025
c986f7f
[azure-planetarycomputer] Regenerate SDK from latest TypeSpec
chahibi Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,10 @@
# PRLabel: %Operator Nexus - Network Cloud
/sdk/networkcloud/ @Azure/azure-sdk-write-networkcloud

# ServiceLabel: %Planetary Computer
# PRLabel: %Planetary Computer
/sdk/planetarycomputer/ @mandarinamdar @chahibi

# AzureSdkOwners: @annatisch
# ServiceLabel: %Azure Projects
# ServiceOwners: @annatisch
Expand Down
9 changes: 9 additions & 0 deletions sdk/planetarycomputer/azure-planetarycomputer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Release History

## 1.0.0b1 (2025-12-01)

- Initial version

### Other Changes

- Introduce azure-planetarycomputer.
138 changes: 138 additions & 0 deletions sdk/planetarycomputer/azure-planetarycomputer/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Contributing to azure-planetarycomputer

This guide covers the manual steps required after regenerating the SDK from TypeSpec, and how to validate your changes locally before pushing to CI.

For general Azure SDK for Python contribution guidance, see the [top-level CONTRIBUTING.md](https://github.com/Azure/azure-sdk-for-python/blob/main/CONTRIBUTING.md).

---

## Regenerating the SDK from TypeSpec

### 1. Update `tsp-location.yaml`

Edit [tsp-location.yaml](tsp-location.yaml) to point to the desired spec commit and directory:

```yaml
directory: specification/orbital/Microsoft.PlanetaryComputer
commit: <new-commit-sha>
repo: Azure/azure-rest-api-specs
```

### 2. Run code generation

From the package root (`sdk/planetarycomputer/azure-planetarycomputer`):

```bash
npx tsp-client update
```

---

## Known Manual Fixes on Generated Code

The TypeSpec code generator does not emit certain comments or formatting that CI checks require. The following fixes must be **manually applied** after every regeneration.

### Pylint Suppressions

#### `azure/planetarycomputer/operations/_operations.py`

| Location | Suppression | Reason |
|---|---|---|
| Line 1 (file-level) | `# pylint: disable=too-many-lines,too-many-locals,too-many-branches,too-many-statements` | Generated request builders and operations exceed pylint thresholds |
| `from collections.abc import MutableMapping` | `# pylint: disable=import-error` | Not resolvable in the pylint virtualenv |
| `from .._utils.model_base import (` | `# pylint: disable=unused-import` | `_deserialize_xml` is imported but not always used; the suppression must go on the `from` line (Black reformats the import into multi-line) |

#### `azure/planetarycomputer/aio/operations/_operations.py`

| Location | Suppression | Reason |
|---|---|---|
| Line 1 (file-level) | `# pylint: disable=too-many-lines,too-many-locals` | Generated async operations exceed pylint thresholds |
| `from collections.abc import MutableMapping` | `# pylint: disable=import-error` | Not resolvable in the pylint virtualenv |
| `from ..._utils.model_base import (` | `# pylint: disable=unused-import` | Same as sync - suppression goes on the `from` line |

#### `azure/planetarycomputer/_utils/model_base.py`

| Location | Suppression | Reason |
|---|---|---|
| `from collections.abc import MutableMapping` | `# pylint: disable=import-error` | Not resolvable in the pylint virtualenv |
| `return super().__new__(cls)` (in `Model.__new__`) | `# pylint: disable=no-value-for-parameter` | False positive - pylint cannot resolve the MRO for `__new__` |

> **Important:** After adding pylint suppressions, run `tox -e black` first - Black may reformat single-line imports into multi-line, which moves your `# pylint: disable` comments. If Black reformats the `_deserialize_xml` import into multiple lines, the `# pylint: disable=unused-import` comment must be on the `from ... import (` line, **not** on the closing `)` or the individual name line.

### Sphinx Docstring Fixes

The generated docstring for `DataOperations.get_interval_legend` (in both sync and async `_operations.py`) contains two formatting issues that cause Sphinx warnings (treated as errors):

1. **Missing newline after JSON code block:** The closing `]` of the `.. code-block:: json` runs directly into the text `This example defines two intervals:`. Add a blank line between them.
2. **Bullet continuation indentation:** The second bullet's continuation line (`color.`) must be indented to align with the bullet content (use 10 spaces instead of 8) so Sphinx doesn't report "Bullet list ends without a blank line; unexpected unindent."

### Sample Updates

If the TypeSpec renames or removes API operations, the hand-written samples under `samples/` and `samples/async/` must be updated to match. For example, `list_collections` was renamed to `get_collections` - all sample files referencing the old name need to be updated. MyPy and Pyright (which also check samples) will catch these.

---

## Local Validation

Run the following checks **from the package root** before pushing. All commands use the shared tox config:

```bash
cd sdk/planetarycomputer/azure-planetarycomputer
```

### Formatting (Black)

```bash
tox -e black -c ../../../eng/tox/tox.ini --root .
```

### Linting (Pylint)

```bash
tox -e pylint -c ../../../eng/tox/tox.ini --root .
```

### Type Checking (MyPy)

```bash
tox -e mypy -c ../../../eng/tox/tox.ini --root .
```

### Type Checking (Pyright)

```bash
tox -e pyright -c ../../../eng/tox/tox.ini --root .
```

### Documentation (Sphinx)

```bash
tox -e sphinx -c ../../../eng/tox/tox.ini --root .
```

### API Stub Generation

```bash
tox -e apistub -c ../../../eng/tox/tox.ini --root .
```

> **Tip:** Running `black`, `pylint`, `mypy`, `pyright`, and `sphinx` locally catches the vast majority of CI failures before you push.

---

## Quick-Reference Checklist

After running `npx tsp-client update`:

- [ ] Restore `tests/` and `samples/` - `git checkout -- tests/ samples/`
- [ ] Add file-level pylint suppressions to both `_operations.py` files
- [ ] Add inline `# pylint: disable=import-error` to `MutableMapping` imports (3 files)
- [ ] Add `# pylint: disable=unused-import` on the `from ... import (` line for `_deserialize_xml` (2 files)
- [ ] Add inline `# pylint: disable=no-value-for-parameter` to `Model.__new__` in `model_base.py`
- [ ] Run `tox -e black` - formatting (may reformat imports; re-check pylint comment placement)
- [ ] Run `tox -e pylint` - linting (should score 10.00/10)
- [ ] Fix Sphinx docstring issues in `get_interval_legend` (both sync and async `_operations.py`)
- [ ] Run `tox -e sphinx` - documentation
- [ ] Run `tox -e mypy` and `tox -e pyright` - type checking (will catch renamed/removed APIs in samples)
- [ ] Update samples if any operations were renamed or removed
- [ ] Update `CHANGELOG.md` with a release date if preparing a release
21 changes: 21 additions & 0 deletions sdk/planetarycomputer/azure-planetarycomputer/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
6 changes: 6 additions & 0 deletions sdk/planetarycomputer/azure-planetarycomputer/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include *.md
include LICENSE
include azure/planetarycomputer/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/__init__.py
Loading