Metadata-Version: 2.4
Name: luranta
Version: 0.1.0
Summary: Official Python SDK for the Luranta API.
Project-URL: Documentation, https://docs.luranta.com
Project-URL: Source, https://github.com/luranta/sdk-python
Author-email: Luranta <support@luranta.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: <3.15,>=3.10
Requires-Dist: pydantic-core==2.46.4
Requires-Dist: pydantic==2.13.4
Requires-Dist: typing-extensions==4.16.0
Description-Content-Type: text/markdown

# `luranta`

Official Python SDK for Luranta's preview API, published as `luranta`.

```python
from luranta import Luranta

luranta = Luranta(api_key="lur_...")

for job in luranta.jobs.iterate({"roles": ["software-engineering"]}):
    print(job.title)
```

`jobs`, `companies`, `tools`, and `locations` expose `list`, `retrieve` where
applicable, cursor iterators, and `with_raw_response` methods. Versioned role
and industry taxonomies are available through `luranta.taxonomies.roles` and
`luranta.taxonomies.industries`; use their `current()` and `get(version)`
methods. Raw responses include request IDs and Luranta billing headers.

Taxonomy values, tools, and locations are evolving resources. Languages are
accepted as canonical BCP 47 strings (for example `en-GB` or `zh-Hans`) rather
than a generated enum.

Only HTTP `408`, `429`, `500`, `502`, `503`, and `504` responses carrying
valid RFC 9457 Problem Details with `retryable: true` and no billing evidence
are retried. `Retry-After` is honored. Network failures are ambiguous and
immediately raise `TransportError`. Cursor iterators stop on malformed or
repeated cursors rather than risk duplicate billable reads.

## Generation

`src/luranta_generated` contains disposable models generated from the canonical
`../../apps/api/openapi/openapi.json` using OpenAPI Generator engine 7.24.0
through the exact 2.40.1 CLI wrapper. Generated HTTP code is intentionally
excluded so the safe runtime above is the only transport. A deterministic
response-only transform widens schema enums to strings while retaining their
known values as metadata, so a new server enum does not break an older SDK.

```sh
bun run generate
bun run generate:check
```

Luranta API keys belong only in trusted server-side environments. Never expose
one in browser or mobile application code.

The preview package supports the exact tested Python 3.10 through 3.14
maintenance lines.

The public source repository is [luranta/sdk-python](https://github.com/luranta/sdk-python).
Releases use PyPI Trusted Publishing with attestations.
