Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
27 changes: 5 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,38 +10,21 @@ Pull requests are welcome! However, **modifications to auto-generated code will

Before submitting a pull request, please ensure:

1. Install [mise](https://mise.jdx.dev) if you haven't already
1. Install [mise](https://mise.jdx.dev)
2. Run `mise run ci:check` to verify all checks pass
3. To see all available tasks, run `mise tasks ls`

### Auto-generated code restrictions

The following directories contain auto-generated code and **must not be modified**:

- `immich/client/` - All files in this directory are auto-generated from the Immich OpenAPI specification
- Any other auto-generated files

The generated client is updated by automation:

- Generate client from the upstream Immich release
- Commit to `main` via an automation PR
- Tag + release to PyPI

### What can be contributed

You can contribute to:

- Custom wrapper functions in `immich/client_wrapper/`
- Internal functions in `immich/_internal/`
- SDK-level code in `immich/sdk.py`
- Tests in `tests/`
- Documentation improvements
- Build and development tooling
- `immich/client/` - Auto-generated client
- `immich/cli/commands/` - Auto-generated CLI commands

## Where to report issues

- **Immich API/spec problems** (missing/incorrect endpoints, schema issues, breaking API changes): open an issue in the upstream Immich repository.
- **Generation issues** (bad codegen output, typing problems introduced by generation, workflow automation problems): open an issue here.
- **Immich API/spec problems** (missing/incorrect endpoints, schema issues, breaking API changes): open an issue in the [upstream Immich repository](https://github.com/immich-app/immich/issues).
- **Generation issues** (bad codegen output, typing problems introduced by generation, workflow automation problems): open an issue [here](https://github.com/timonrieger/immich-py/issues).

When reporting, include:

Expand Down
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@

<h1 align="center">Immich API Client</h1>
<h3 align="center">Unofficial Python client for the <a href="https://immich.app">Immich</a> API.</h3>
<h1 align="center">immich-py</h1>
<h3 align="center">Unofficial Python SDK & CLI for the <a href="https://immich.app">Immich</a> API.</h3>
<p align="center">
<a href="https://github.com/immich-app/immich/releases" target="_blank" rel="noopener noreferrer">
<img src="https://img.shields.io/badge/dynamic/regex?url=https://raw.githubusercontent.com/timonrieger/immich-python-client/main/IMMICH-VERSION&search=(.*)&replace=%241%20-%20$1&label=supported%20Immich%20versions&color=blue" alt="Supported Immich version">
<img src="https://img.shields.io/badge/dynamic/regex?url=https://raw.githubusercontent.com/timonrieger/immich-py/main/IMMICH-VERSION&search=(.*)&replace=%241%20-%20$1&label=supported%20Immich%20versions&color=blue" alt="Supported Immich version">
</a>
<a href="https://pypi.org/project/immich" target="_blank" rel="noopener noreferrer">
<img src="https://img.shields.io/pypi/v/immich?color=blue&label=pypi%20package" alt="Package version">
Expand All @@ -14,8 +13,8 @@
<a href="https://pypi.org/project/immich" target="_blank" rel="noopener noreferrer">
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/immich?color=blue">
</a>
<img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/timonrieger/immich-python-client/cd.yml?branch=main&event=push&logo=github&label=Continuous%20Delivery&color=blue">
<a href="https://github.com/timonrieger/immich-python-client" target="_blank" rel="noopener noreferrer">
<img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/timonrieger/immich-py/cd.yml?branch=main&event=push&logo=github&label=Continuous%20Delivery&color=blue">
<a href="https://github.com/timonrieger/immich-py" target="_blank" rel="noopener noreferrer">
<img alt="GitHub Repository" src="https://img.shields.io/badge/Github-repository-blue?logo=github&color=blue">
</a>

Expand Down
2 changes: 1 addition & 1 deletion immich/_internal/upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ async def upload_file(
response = await assets_api.upload_asset_with_http_info(
asset_data=asset_data,
device_asset_id=f"{filepath.name}-{stats.st_size}".replace(" ", ""),
device_id="immich-python-client",
device_id="immich-py",
file_created_at=file_created_at,
file_modified_at=file_modified_at,
sidecar_data=sidecar_data,
Expand Down
2 changes: 1 addition & 1 deletion immich/sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ def __init__(
base_url=base_url,
)
self.base_client = ApiClient(configuration=self.config)
self.base_client.user_agent = "immich-python-client"
self.base_client.user_agent = "immich-py"

# Allow caller to inject a pre-configured aiohttp session.
if http_client is not None:
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ dependencies = [
build = ["uv==0.9.21"]

[project.urls]
Repository = "https://github.com/timonrieger/immich-python-client"
Changelog = "https://github.com/timonrieger/immich-python-client/releases"
Repository = "https://github.com/timonrieger/immich-py"
Changelog = "https://github.com/timonrieger/immich-py/releases"

[build-system]
requires = ["uv_build==0.9.21"]
Expand Down