alion 0.1.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.
- alion-0.1.0/.gitignore +8 -0
- alion-0.1.0/LICENSE +21 -0
- alion-0.1.0/PKG-INFO +163 -0
- alion-0.1.0/README.md +128 -0
- alion-0.1.0/pyproject.toml +64 -0
- alion-0.1.0/src/alion/__init__.py +29 -0
- alion-0.1.0/src/alion/_client.py +315 -0
- alion-0.1.0/src/alion/_errors.py +84 -0
- alion-0.1.0/src/alion/_tools.py +294 -0
- alion-0.1.0/src/alion/_types.py +3096 -0
- alion-0.1.0/src/alion/_version.py +1 -0
- alion-0.1.0/src/alion/py.typed +0 -0
- alion-0.1.0/tests/test_live.py +46 -0
- alion-0.1.0/tests/test_offline.py +171 -0
- alion-0.1.0/tests/typecheck_consumer.py +33 -0
alion-0.1.0/.gitignore
ADDED
alion-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alion
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
alion-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: alion
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Official Alion client: companies, startups, investors, job postings, hiring and pay statistics and people open to offers, as typed calls for code and AI agents. Free without a key for compact searches.
|
|
5
|
+
Project-URL: Homepage, https://alion.io/developers
|
|
6
|
+
Project-URL: Documentation, https://alion.io/developers
|
|
7
|
+
Project-URL: Source, https://github.com/alion-io/alion-sdk
|
|
8
|
+
Project-URL: Issues, https://github.com/alion-io/alion-sdk/issues
|
|
9
|
+
Author-email: Alion <info@alion.io>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: ai agents,alion,company data,company enrichment,funding rounds,investors,job postings,jobs api,labor market,llm tools,lookalike companies,mcp,model context protocol,salary data,sales prospecting,startups,tech stack,venture capital
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
25
|
+
Classifier: Topic :: Office/Business
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Classifier: Typing :: Typed
|
|
29
|
+
Requires-Python: >=3.9
|
|
30
|
+
Requires-Dist: typing-extensions>=4.7; python_version < '3.11'
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest>=7; extra == 'dev'
|
|
34
|
+
Description-Content-Type: text/markdown
|
|
35
|
+
|
|
36
|
+
# alion
|
|
37
|
+
|
|
38
|
+
The official Python client for [Alion](https://alion.io/developers): a live graph of companies worldwide (what each one does, where it operates, its tech stack, funding rounds and investors, how fast it hires), startup investors, verified job postings with hiring and pay statistics, and people open to offers.
|
|
39
|
+
|
|
40
|
+
Every tool of the [Alion MCP server](https://alion.io/developers/agents) is a typed method, sync or async. Python 3.9+. It uses only the standard library (plus `typing_extensions` before 3.11).
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pip install alion
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Free without a key
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from alion import Alion
|
|
50
|
+
|
|
51
|
+
alion = Alion() # no key: the open address, free within a daily allowance
|
|
52
|
+
|
|
53
|
+
companies = alion.search_companies(industry="Fintech", country="DE", startup=True, funding_stage="early", limit=10)
|
|
54
|
+
for c in companies["items"]:
|
|
55
|
+
print(c["name"], c["domain"])
|
|
56
|
+
|
|
57
|
+
match = alion.resolve_company(domain="stripe.com")["match"]
|
|
58
|
+
jobs = alion.search_jobs(query="data engineer", country="PL", work_mode="remote")
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Without a key you get compact company, investor and job searches, lookalike companies, full job postings, the people tools and the agent tools. The allowance is 300 calls a day per network, 30 a minute, and up to 20 rows per list.
|
|
62
|
+
|
|
63
|
+
## Everything with a key
|
|
64
|
+
|
|
65
|
+
Create a key at [alion.io/developers/keys](https://alion.io/developers/keys) and pass it, or set `ALION_API_KEY`:
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
alion = Alion(api_key="...")
|
|
69
|
+
|
|
70
|
+
stripe = alion.get_company(domain="stripe.com") # funding, hiring, stack, offices, visa
|
|
71
|
+
pay = alion.market_stats(role="Backend Developer", country="US")
|
|
72
|
+
fund = alion.get_investor(domain="sequoiacap.com")
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Calls with a key are paid from your account's credits. Prices are at [alion.io/developers](https://alion.io/developers).
|
|
76
|
+
|
|
77
|
+
## Async
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from alion import AsyncAlion
|
|
81
|
+
|
|
82
|
+
async with AsyncAlion() as alion:
|
|
83
|
+
jobs = await alion.search_jobs(query="rust", country="DE")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Paging
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
for company in alion.paginate("search_companies", technology="Snowflake", hiring=True, max_items=50):
|
|
90
|
+
print(company["name"])
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The server stops a search at row 100. Narrow the filters to reach further.
|
|
94
|
+
|
|
95
|
+
## Errors
|
|
96
|
+
|
|
97
|
+
Every failure is an `AlionError` with a machine-readable `code`:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from alion import AlionError
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
alion.get_company(domain="stripe.com")
|
|
104
|
+
except AlionError as e:
|
|
105
|
+
e.code # "account_required", "invalid_params", "rate_limited", "unauthorized", "timeout", ...
|
|
106
|
+
e.needs_account # True when the tool needs a key or a payment
|
|
107
|
+
e.data # the server's full answer: hints, free_tools, examples
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Rate limits (429), network errors and server errors on read-only tools are retried twice with backoff by default.
|
|
111
|
+
|
|
112
|
+
## Options
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
Alion(
|
|
116
|
+
api_key="...", # default: ALION_API_KEY; "" forces the open address
|
|
117
|
+
app_name="my-agent/1.0", # added to the User-Agent so Alion can tell your agent apart
|
|
118
|
+
timeout=60.0,
|
|
119
|
+
max_retries=2,
|
|
120
|
+
headers={...}, # extra headers on every call
|
|
121
|
+
transport=my_transport, # (url, headers, body, timeout) -> (status, headers, text), e.g. over httpx or requests
|
|
122
|
+
)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Any tool can also be called by name, including tools added to the server after this release:
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
alion.call("check_counterparty", {"target": "acme.com"})
|
|
129
|
+
alion.list_tools() # names, descriptions, input and output schemas
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Tools
|
|
133
|
+
|
|
134
|
+
| Method | What it does |
|
|
135
|
+
|---|---|
|
|
136
|
+
| `search_companies` | Companies by industry, country, size, founding year, startup, funding stage, investor, technology, ATS, hiring and growth level |
|
|
137
|
+
| `similar_companies` | Lookalikes of a company |
|
|
138
|
+
| `get_company` | One company in depth: funding, hiring, stack, offices, visa sponsorship |
|
|
139
|
+
| `resolve_company` | Which company a name or a domain means |
|
|
140
|
+
| `search_investors`, `get_investor` | Funds, accelerators and angels: what they back, at which stage, how active now |
|
|
141
|
+
| `search_jobs`, `get_job` | Verified job postings |
|
|
142
|
+
| `market_stats` | Demand, pay percentiles, top employers and technologies of a role in a country |
|
|
143
|
+
| `search_people`, `match_people`, `similar_people`, `get_person`, `check_fit` | People open to offers |
|
|
144
|
+
| `send_message`, `get_conversation`, `list_conversations` | Write to people in Alion messages |
|
|
145
|
+
| `watch_search`, `check_watch`, `list_watches`, `delete_watch`, `set_webhook` | Follow a search for new results |
|
|
146
|
+
| `check_counterparty`, `check_employer`, `contact_company` | Check a company or an agent, write to a company |
|
|
147
|
+
| `register_agent`, `get_agent`, `agent_status`, `report_problem` | Your agent on Alion |
|
|
148
|
+
|
|
149
|
+
Every argument is typed (`alion.types`), so your editor completes them and mypy or pyright check them.
|
|
150
|
+
|
|
151
|
+
## For AI agents
|
|
152
|
+
|
|
153
|
+
To give a model these tools directly, connect the MCP server instead of wrapping methods yourself:
|
|
154
|
+
|
|
155
|
+
- remote clients (Claude, ChatGPT, Cursor, VS Code, the OpenAI Agents SDK, LangChain's `langchain-mcp-adapters`): `https://alion.io/mcp/open` without an account, `https://alion.io/mcp` with one;
|
|
156
|
+
- clients that start a local command: `npx -y @alion-io/mcp`.
|
|
157
|
+
|
|
158
|
+
## Links
|
|
159
|
+
|
|
160
|
+
- Docs: https://alion.io/developers
|
|
161
|
+
- JavaScript and TypeScript: [`@alion-io/sdk`](https://www.npmjs.com/package/@alion-io/sdk)
|
|
162
|
+
- Source and issues: https://github.com/alion-io/alion-sdk
|
|
163
|
+
- MIT license
|
alion-0.1.0/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# alion
|
|
2
|
+
|
|
3
|
+
The official Python client for [Alion](https://alion.io/developers): a live graph of companies worldwide (what each one does, where it operates, its tech stack, funding rounds and investors, how fast it hires), startup investors, verified job postings with hiring and pay statistics, and people open to offers.
|
|
4
|
+
|
|
5
|
+
Every tool of the [Alion MCP server](https://alion.io/developers/agents) is a typed method, sync or async. Python 3.9+. It uses only the standard library (plus `typing_extensions` before 3.11).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install alion
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Free without a key
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from alion import Alion
|
|
15
|
+
|
|
16
|
+
alion = Alion() # no key: the open address, free within a daily allowance
|
|
17
|
+
|
|
18
|
+
companies = alion.search_companies(industry="Fintech", country="DE", startup=True, funding_stage="early", limit=10)
|
|
19
|
+
for c in companies["items"]:
|
|
20
|
+
print(c["name"], c["domain"])
|
|
21
|
+
|
|
22
|
+
match = alion.resolve_company(domain="stripe.com")["match"]
|
|
23
|
+
jobs = alion.search_jobs(query="data engineer", country="PL", work_mode="remote")
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Without a key you get compact company, investor and job searches, lookalike companies, full job postings, the people tools and the agent tools. The allowance is 300 calls a day per network, 30 a minute, and up to 20 rows per list.
|
|
27
|
+
|
|
28
|
+
## Everything with a key
|
|
29
|
+
|
|
30
|
+
Create a key at [alion.io/developers/keys](https://alion.io/developers/keys) and pass it, or set `ALION_API_KEY`:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
alion = Alion(api_key="...")
|
|
34
|
+
|
|
35
|
+
stripe = alion.get_company(domain="stripe.com") # funding, hiring, stack, offices, visa
|
|
36
|
+
pay = alion.market_stats(role="Backend Developer", country="US")
|
|
37
|
+
fund = alion.get_investor(domain="sequoiacap.com")
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Calls with a key are paid from your account's credits. Prices are at [alion.io/developers](https://alion.io/developers).
|
|
41
|
+
|
|
42
|
+
## Async
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from alion import AsyncAlion
|
|
46
|
+
|
|
47
|
+
async with AsyncAlion() as alion:
|
|
48
|
+
jobs = await alion.search_jobs(query="rust", country="DE")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Paging
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
for company in alion.paginate("search_companies", technology="Snowflake", hiring=True, max_items=50):
|
|
55
|
+
print(company["name"])
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The server stops a search at row 100. Narrow the filters to reach further.
|
|
59
|
+
|
|
60
|
+
## Errors
|
|
61
|
+
|
|
62
|
+
Every failure is an `AlionError` with a machine-readable `code`:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
from alion import AlionError
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
alion.get_company(domain="stripe.com")
|
|
69
|
+
except AlionError as e:
|
|
70
|
+
e.code # "account_required", "invalid_params", "rate_limited", "unauthorized", "timeout", ...
|
|
71
|
+
e.needs_account # True when the tool needs a key or a payment
|
|
72
|
+
e.data # the server's full answer: hints, free_tools, examples
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Rate limits (429), network errors and server errors on read-only tools are retried twice with backoff by default.
|
|
76
|
+
|
|
77
|
+
## Options
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
Alion(
|
|
81
|
+
api_key="...", # default: ALION_API_KEY; "" forces the open address
|
|
82
|
+
app_name="my-agent/1.0", # added to the User-Agent so Alion can tell your agent apart
|
|
83
|
+
timeout=60.0,
|
|
84
|
+
max_retries=2,
|
|
85
|
+
headers={...}, # extra headers on every call
|
|
86
|
+
transport=my_transport, # (url, headers, body, timeout) -> (status, headers, text), e.g. over httpx or requests
|
|
87
|
+
)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Any tool can also be called by name, including tools added to the server after this release:
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
alion.call("check_counterparty", {"target": "acme.com"})
|
|
94
|
+
alion.list_tools() # names, descriptions, input and output schemas
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Tools
|
|
98
|
+
|
|
99
|
+
| Method | What it does |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `search_companies` | Companies by industry, country, size, founding year, startup, funding stage, investor, technology, ATS, hiring and growth level |
|
|
102
|
+
| `similar_companies` | Lookalikes of a company |
|
|
103
|
+
| `get_company` | One company in depth: funding, hiring, stack, offices, visa sponsorship |
|
|
104
|
+
| `resolve_company` | Which company a name or a domain means |
|
|
105
|
+
| `search_investors`, `get_investor` | Funds, accelerators and angels: what they back, at which stage, how active now |
|
|
106
|
+
| `search_jobs`, `get_job` | Verified job postings |
|
|
107
|
+
| `market_stats` | Demand, pay percentiles, top employers and technologies of a role in a country |
|
|
108
|
+
| `search_people`, `match_people`, `similar_people`, `get_person`, `check_fit` | People open to offers |
|
|
109
|
+
| `send_message`, `get_conversation`, `list_conversations` | Write to people in Alion messages |
|
|
110
|
+
| `watch_search`, `check_watch`, `list_watches`, `delete_watch`, `set_webhook` | Follow a search for new results |
|
|
111
|
+
| `check_counterparty`, `check_employer`, `contact_company` | Check a company or an agent, write to a company |
|
|
112
|
+
| `register_agent`, `get_agent`, `agent_status`, `report_problem` | Your agent on Alion |
|
|
113
|
+
|
|
114
|
+
Every argument is typed (`alion.types`), so your editor completes them and mypy or pyright check them.
|
|
115
|
+
|
|
116
|
+
## For AI agents
|
|
117
|
+
|
|
118
|
+
To give a model these tools directly, connect the MCP server instead of wrapping methods yourself:
|
|
119
|
+
|
|
120
|
+
- remote clients (Claude, ChatGPT, Cursor, VS Code, the OpenAI Agents SDK, LangChain's `langchain-mcp-adapters`): `https://alion.io/mcp/open` without an account, `https://alion.io/mcp` with one;
|
|
121
|
+
- clients that start a local command: `npx -y @alion-io/mcp`.
|
|
122
|
+
|
|
123
|
+
## Links
|
|
124
|
+
|
|
125
|
+
- Docs: https://alion.io/developers
|
|
126
|
+
- JavaScript and TypeScript: [`@alion-io/sdk`](https://www.npmjs.com/package/@alion-io/sdk)
|
|
127
|
+
- Source and issues: https://github.com/alion-io/alion-sdk
|
|
128
|
+
- MIT license
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.24"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "alion"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Official Alion client: companies, startups, investors, job postings, hiring and pay statistics and people open to offers, as typed calls for code and AI agents. Free without a key for compact searches."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
requires-python = ">=3.9"
|
|
13
|
+
authors = [{ name = "Alion", email = "info@alion.io" }]
|
|
14
|
+
keywords = [
|
|
15
|
+
"alion", "company data", "company enrichment", "startups", "investors", "venture capital",
|
|
16
|
+
"funding rounds", "job postings", "jobs api", "labor market", "salary data", "tech stack",
|
|
17
|
+
"lookalike companies", "sales prospecting", "mcp", "model context protocol", "ai agents", "llm tools",
|
|
18
|
+
]
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Development Status :: 4 - Beta",
|
|
21
|
+
"Intended Audience :: Developers",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
"Programming Language :: Python :: 3",
|
|
24
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
25
|
+
"Programming Language :: Python :: 3.9",
|
|
26
|
+
"Programming Language :: Python :: 3.10",
|
|
27
|
+
"Programming Language :: Python :: 3.11",
|
|
28
|
+
"Programming Language :: Python :: 3.12",
|
|
29
|
+
"Programming Language :: Python :: 3.13",
|
|
30
|
+
"Programming Language :: Python :: 3.14",
|
|
31
|
+
"Topic :: Internet :: WWW/HTTP",
|
|
32
|
+
"Topic :: Office/Business",
|
|
33
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
34
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
35
|
+
"Typing :: Typed",
|
|
36
|
+
]
|
|
37
|
+
dependencies = ['typing_extensions>=4.7; python_version < "3.11"']
|
|
38
|
+
|
|
39
|
+
[project.optional-dependencies]
|
|
40
|
+
dev = ["pytest>=7", "mypy>=1.10"]
|
|
41
|
+
|
|
42
|
+
[project.urls]
|
|
43
|
+
Homepage = "https://alion.io/developers"
|
|
44
|
+
Documentation = "https://alion.io/developers"
|
|
45
|
+
Source = "https://github.com/alion-io/alion-sdk"
|
|
46
|
+
Issues = "https://github.com/alion-io/alion-sdk/issues"
|
|
47
|
+
|
|
48
|
+
[tool.hatch.version]
|
|
49
|
+
path = "src/alion/_version.py"
|
|
50
|
+
|
|
51
|
+
[tool.hatch.build.targets.wheel]
|
|
52
|
+
packages = ["src/alion"]
|
|
53
|
+
|
|
54
|
+
[tool.hatch.build.targets.sdist]
|
|
55
|
+
include = ["src/alion", "tests", "README.md", "LICENSE", "pyproject.toml"]
|
|
56
|
+
|
|
57
|
+
[tool.pytest.ini_options]
|
|
58
|
+
testpaths = ["tests"]
|
|
59
|
+
markers = ["live: calls https://alion.io (run with -m live)"]
|
|
60
|
+
addopts = "-m 'not live'"
|
|
61
|
+
|
|
62
|
+
[tool.mypy]
|
|
63
|
+
python_version = "3.9"
|
|
64
|
+
strict = true
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Official Python client for Alion: companies, startups, investors, job postings, hiring and pay
|
|
2
|
+
statistics, and people open to offers, for code and AI agents. https://alion.io/developers
|
|
3
|
+
|
|
4
|
+
>>> from alion import Alion
|
|
5
|
+
>>> alion = Alion() # free without a key
|
|
6
|
+
>>> alion.search_companies(industry="Fintech", country="DE", startup=True, limit=10)["items"]
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from . import _types as types
|
|
10
|
+
from ._client import DEFAULT_BASE_URL, PROTOCOL_VERSION, Alion, AsyncAlion, Response, Transport, urllib_transport
|
|
11
|
+
from ._errors import AlionError
|
|
12
|
+
from ._types import PAGED_TOOLS, READ_ONLY_TOOLS, TOOL_NAMES
|
|
13
|
+
from ._version import __version__
|
|
14
|
+
|
|
15
|
+
__all__ = [
|
|
16
|
+
"Alion",
|
|
17
|
+
"AsyncAlion",
|
|
18
|
+
"AlionError",
|
|
19
|
+
"types",
|
|
20
|
+
"PAGED_TOOLS",
|
|
21
|
+
"READ_ONLY_TOOLS",
|
|
22
|
+
"TOOL_NAMES",
|
|
23
|
+
"PROTOCOL_VERSION",
|
|
24
|
+
"DEFAULT_BASE_URL",
|
|
25
|
+
"Response",
|
|
26
|
+
"Transport",
|
|
27
|
+
"urllib_transport",
|
|
28
|
+
"__version__",
|
|
29
|
+
]
|