Metadata-Version: 2.4
Name: luranta
Version: 0.2.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` and `companies` expose `list`, `retrieve`, cursor iterators, and
`with_raw_response` methods. Location filters accept place names such as
`London` as well as canonical IDs. Raw responses include request IDs and
Luranta billing headers.

Role, industry, and tool filters are typed enums from the published contract.
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.
